当我使用 strtok 标记 C++ 字符串时,会出现一个令人困惑的问题,请参见下面的简单代码:
void a(string s){
strtok((char*)s.c_str(), " ");
}
int main(){
string s;
s = "world hello";
a(s);
cout<<s<<endl;
return 0;
}
程序输出“世界”。它不应该输出“world hello”吗?因为我将字符串作为值参数传递给函数 a,所以 strtok 不应该修改原始 s... 任何人都可以解释这个技巧。谢谢你。