когда я использую 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;
}
программа выводит "мир". Разве он не должен выводить «привет миру»? Поскольку я передаю строку в качестве параметра значения функции a, strtok не должен изменять исходный s... Кто-нибудь может объяснить этот трюк. благодарю вас.