我想從C++中的std :: string中刪除所有的標點符號。我目前的代碼:如何在C++中終止std :: string?
string str_in;
string::size_type i, j;
cout << "please input string with punctuation character..." << endl;
cin >> str_in;
for (i = 0, j = 0; i != str_in.size(); ++i)
if (!ispunct(str_in[i]))
str_in[j++] = str_in[i];
str_in[j] = '\0';
cout << str_in << endl;
是str_in[j] = '\0';
錯?
我同意'str_in [J] =「\ 0''是錯誤的,因爲這是不恰當的方式終止一個'std :: string'。什麼是問題? – jamesdlin
如何在C++中終止一個std :: string – iverson
如果你想改變這個問題,這將會很有幫助。與C風格的字符串不同,'std :: string'沒有被定義爲使用終結符。我想你試圖從'std :: string'中刪除所有標點符號,所以''foo.bar + baz''變成'「foobarbaz」'。如果是這樣,那與終止無關。 –