2013-01-01 5 views
0

나는 std::string을 가지고 있습니다. 어떻게 %%: 문자로 바꿀 수 있습니까?문자를 다른 문자로 바꾸기

std::replace(s.begin(), s.end(), ':', '%%'); 이 위의 코드는 작동하지 않습니다

오류없이 인스턴스는 아규먼트리스트에게

감사를 일치!

답변

7

불행히도 한 번에 모든 :자를 바꿀 방법이 없습니다. 그러나이 같은 루프에서 작업을 수행 할 수 있습니다

string s = "quick:brown:fox:jumps:over:the:lazy:dog"; 
int i = 0; 
for (;;) { 
    i = s.find(":", i); 
    if (i == string::npos) { 
     break; 
    } 
    s.replace(i, 1, "%%"); 
} 
cout << s << endl; 

이 프로그램 prints

quick%%brown%%fox%%jumps%%over%%the%%lazy%%dog 

그런 다음, 첫 번째 콜론을 대체 그 자체로 루프의 몸을 사용해야하는 경우를하지 않고 그 주위의 고리.

관련 문제