我在C ++中遇到一个问题,就是要求我在单词中拆分一个短语并在一行中显示每个单词。
该短语取自文件phrase.in
并放入char矢量phrs[256]
现在,问题在于:
p = strtok(aux, " ");
while(p)
{
p = strtok(NULL, " ");
cout << p;
}
当我试图分割短语&#34; RAM内存很重要&#34;时,它只显示我
memory
is
important
如何让程序向我显示第一个单词?
答案 0 :(得分:3)
在您的代码中,第一个Inf
调用返回一个指向字符串开头的指针,字符串strtok
位于该指针处。下一个调用会使"RAM"
指向下一个单词,跳过p
。
要解决这个问题,只需交换"RAM"
- 循环中的两行:
while