Ну, то же решение, что и у abelenky, но без бесполезного дерьма и обфускации тестового кода (когда что-то, например printf, нужно написать дважды, я не ввожу фиктивный логический код, чтобы избежать этого, не читалкак то где-то?)
#include<stdio.h>
char* SplitString(char* str, char sep)
{
return str;
}
main()
{
char* input = "Hello Word of C";
char *output, *temp;
char * field;
char sep = ' ';
int cnt = 1;
output = SplitString(input, sep);
field = output;
for(temp = field; *temp; ++temp){
if (*temp == sep){
printf("%d.) %.*s\n", cnt++, temp-field, field);
field = temp+1;
}
}
printf("%d.) %.*s\n", cnt++, temp-field, field);
}
Протестировано с gcc под Linux:
1.) Hello
2.) Word
3.) of
4.) C