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 ''가됩니다. 그렇다면 해지와 아무런 관련이 없습니다. –