Hi all,
I am trying to parse the following buffer, each are seperated by a '|' char,
Code:
char string[] = "word 1 |word2 | word3| word4|word5";
I got the following, its a bit messy, but I hope someone can point me to the right direction.
Code:
int main(void)
{
char word[128];
char *p, prefix;
int i;
char string[] = "word 1 |word2 | word3| word4|word5";
prefix = '|';
p = strchr(string, prefix);
if(p == NULL) {
printf("No %c found.\n", prefix);
}
else {
i = p-string;
//printf("Found %c at position: %d\n", prefix, i+1);
strncpy(word, &string[0], i);
word[i] = '\0';
printf("Word: [%s]\n", word);
do {
p=strchr(p+1, prefix);
strncpy(word, &string[i], (p-string)-i);
word[p-string] = '\0';
printf("Word: [%s]\n", word);
i = p-string;
//printf("Found %c at position: %d\n", prefix, i+1);
} while(p != NULL);
}
return 0;
}
Output:
Code:
Word: [word 1 ]
Word: [|word2 ╠╠╠╠╠╠╠]
Word: [| word3 ╠╠╠╠╠╠╠]
Word: [| word4 ╠╠╠╠╠╠╠]
Which should be:
Code:
Word: [word 1]
Word: [word2]
Word: [word3]
Word: [word4]
Word: [word5]
Any help and info are much appreciated.