【发布时间】:2012-08-14 17:50:08
【问题描述】:
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;
【问题讨论】:
-
试试
man strtok并获取基本信息。 -
为什么不是 Zoidb...^H^H^H^H^H^H^H^H^H
std::string和std::stringstream?