2012-04-15 3 views
0

필자는 텍스트를 입력하고 공백을 건너 뛰는 방법을 알고 있지만 문자열 일 때 어때요? 코드 동안 나는 asdasd문자열에서 C++ skipws?

asdasd의 asdads 같은 문자열을 asdasd 얻고 그래서 그것을 모든 공간을 제거해야합니다. 그렇다면 skipws(string_text);을 작성하는 방법이 있습니까?

+0

: 당신이 값 asdasdasdadsasdasdasdasd로 문자열을 구성하려는 경우 삭제 - 삭제 관용구를 사용하여 ? 스플 라이스 된 스페이싱을 사용하여 문자열을 구성 하시겠습니까? 아니면 반복하는 동안 무시하고 싶습니까? – Potatoswatter

답변

2

당신이 무엇을 의미 "제거"할

str.erase(std::remove(str.begin(), str.end(), ' '), str.end()); 

또는 <ctype.h>에서 ::isspace을 사용하여,

str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end()); 
0

일반적인 방법은 없습니다. 검색/바꾸기를 병행하여 사용하거나 stringstream (입력 문자열로 초기화 됨)을 사용하고 >>을 사용하여 공백이없는 단어를 가져 와서 결과를 (다른/동일한) 문자열로 연결할 수 있습니다.

+0

대체 할 기능은 무엇입니까? – sehe

+0

@sehe - [std :: string :: replace] (http://www.cplusplus.com/reference/string/string/replace/) (및 [std :: string :: find] (http : // www .cplusplus.com/reference/string/string/find /)) – Attila

+0

@Attila 그러면 O (N^2)가됩니다. – Potatoswatter