strtok如何实际接受每一个字?

时间:2016-01-31 10:49:37

标签: c++ arrays pointers char

我在C ++中遇到一个问题,就是要求我在单词中拆分一个短语并在一行中显示每个单词。

该短语取自文件phrase.in并放入char矢量phrs[256]

现在,问题在于:

p = strtok(aux, " ");

while(p)
{
    p = strtok(NULL, " ");
    cout << p;
}

当我试图分割短语&#34; RAM内存很重要&#34;时,它只显示我

memory
is
important

如何让程序向我显示第一个单词?

1 个答案:

答案 0 :(得分:3)

在您的代码中,第一个Inf调用返回一个指向字符串开头的指针,字符串strtok位于该指针处。下一个调用会使"RAM"指向下一个单词,跳过p

要解决这个问题,只需交换"RAM" - 循环中的两行:

while