#include <stdio.h> #include <stdint.h> void copy_str(char * dst,const char *src,int len){ for(int i = 0;i<len;i++){ dst[i] = src[i]; } dst[len]= '\0'; } void split_string(const char *str, char delimiter, char tokens[10][20], uint8_t *count) { // Your logic here int i = 0,j =0; while(str[i] != '\0'){ if(str[i] == delimiter){ copy_str(&tokens[*count][0],&str[j],i-j); j=i+1; *count += 1; } i++; } copy_str(&tokens[*count][0],&str[j],i-j); *count += 1; } int main() { char str[101]; char delimiter; fgets(str, sizeof(str), stdin); scanf(" %c", &delimiter); // Remove newline uint8_t i = 0; while (str[i]) { if (str[i] == '\n') { str[i] = '\0'; break; } i++; } char tokens[10][20]; uint8_t count = 0; split_string(str, delimiter, tokens, &count); for (uint8_t i = 0; i < count; i++) { printf("%s\n", tokens[i]); } return 0; }
Test Cases
Test Results
Input
cmd1,cmd2,cmd3 ,
Expected Output
cmd1 cmd2 cmd3