e:谢谢大家,没有意识到 strtok 实际上修改了字符串本身。希望以后我不会那么傻。
我最近开始从一本书中学习 C++。我现在在关于解析字符串的章节。
我的下一个任务是在用 strtok 拆分字符串的标记后将它们重新组合在一起,但我不明白字符串的其余部分在第一个分隔符之后去了哪里!请记住,我对此很陌生,如果这是一个愚蠢的问题,我很抱歉。
基本上发生的事情是这样的: 1. 我输入了一个字符串“嘿,你好吗?” 2.打印出来,正常。3. 然后我将它分成标记(使用分隔符和空格) 4. 它们都打印整齐 5. 再次打印字符串,剩下的就是“嘿”。
那么如何取回剩余的字符串呢?
这是我的代码:
char the_string[ 81], *p;
cout << the_string << endl;
cout << "Input a string to parse: ";
cin.getline(the_string, 81);
p = strtok(the_string, ", ");
while (p != NULL) {
cout << p << endl;
p = strtok(NULL, ", ");
}
cout << the_string << endl;