将字符串分成单独的部分

时间:2013-04-15 06:23:29

标签: c strtok

    //PROBLEM NUMBER 2
    //how to store word from pointer2char into wordList array?

New_sentence是一个包含字符串的数组(从用户输入的句子)。

pointers2char是一个指针数组,可以保存指向New_sentence每个单词的指针。

当功能输出时,只显示字符串的第一个字,然后程序结束。

如何将New_sentence中的所有字词存储在pointers2char中?

2 个答案:

答案 0 :(得分:0)

for循环中,您从i = 1开始。在循环的第一次迭代之前,将评估pointers2char[i] != NULL。由于此时pointers2char[1]很可能未初始化,因此很可能会返回NULL。因此,您永远不会进入循环。

尝试以下方法:

pointers2char[0] = strtok(New_sentence, " \t");
for (i = 0; pointers2char[i] != NULL; i++) {
    printf("%s\n", pointers2char[i]);
    pointers2char[i + 1] = strok(NULL, " \t");
}
*nWords = i;

答案 1 :(得分:0)

你的for循环使用这个问题。我认为它会解决你的问题

for(i = 0; pointers2char[i] != NULL;)
{
   printf("%s\n", pointers2char[i]);
   nWords++;
   pointers2char[++i] = strtok(NULL, "\t");
}