2010-02-13 5 views
6

내가 생각할 수있는 모든 언어에서 C++의 문자열 클래스는 다음과 같은 간단한 연산을 지원하지 않지만 Replace 함수는 기본적으로 모든 문자열 조각을 대체합니다.std :: string :: 표준 구현 바꾸기?

string s = "Hello World"; 
s = s.Replace("Hello", "Goodbye"); 
echo s; // Prints "Goodbye World" 

이것은 가장 보편적 인 사용법입니다 어떤 유형의 문자열 바꾸기 기능이 있지만 C++에서는 표준 바꾸기 기능이없는 것 같습니다. 내가 여기서 뭔가를 놓치고 있니?

편집 : 표준 라이브러리에서 이와 같은 기본 제공 대체 함수가 없다는 것을 알고 있습니다. 표준 알고리즘이나 그 종류의 것에서 다소 표준 구현이 있는지 궁금합니다.

+0

조금 루프 같은 불평. 대체와 함께 찾기를 사용하는 것을 제외하고는 STL에 해결책이 없다고 생각합니다. – Dave

답변

9

표준 라이브러리에없는 것이 누락되었습니다.
find(), replace() 등으로 직접 작성하거나 (부스트 string algorithm library)과 같은 구현을 사용할 수 있습니다.

0

이 정확히 동일하지 않습니다하지만 대체 방법이있다 :

#include <iostream> 
#include <string> 

using namespace std; 

int main(void) 
{ 
     string s = "Hello World"; 

     s.replace(0, 5, "Goodbye"); 

     cout << s << endl; 

     return 0; 
} 

쉽게, 문자열을 찾을 :: 문자열을 사용하여 교체를 쓸 수는 :: 교체하고 난 항상 있었다

관련 문제