Я пытаюсь удалить все знаки пунктуации из std :: string в C++. Мой текущий код:Как прервать std :: string в C++?
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 [у] =«\ 0'' неверно, так как это не является подходящим способом завершите строку 'std :: string'. В чем вопрос? – jamesdlin
Как прервать std :: string в C++ – iverson
Было бы полезно, если бы вы перефразировали вопрос. В отличие от строк стиля C, 'std :: string' не определены для использования терминатора. Я думаю, вы пытаетесь удалить все знаки препинания из 'std :: string', поэтому' 'foo.bar + baz' 'становится' "foobarbaz" '. Если это так, это не имеет никакого отношения к прекращению. –