2014-03-13 2 views
2

MFC 응용 프로그램에 단일/다중 공백이있는 CString이 있습니다. 나는 그것을 하나의 밑줄로 대체해야한다. 예 : sampleString =여러 공백 MFC를 대체하는 CString

"A B C D E" --> "A_B_C_D_E" 

하지만 sampleString.Replace를 사용하는 경우 ("", '_'), 밑줄은 각 공간

"A_B__C_D___E". 

을 즉 내가 코드를 작성하지만 같은 didnot했다 나타납니다 많이, 또한 잘못되었습니다.

   int i=0,pos=0,lastSpacePos=sampleString.GetLength(); 
       while(i<sampleString.GetLength()) 
       { 
        pos=sampleString.Find(" ",i); 
        if(pos!=-1) 
        { 
         if(lastSpacePos!=(pos-1)) 
         { 
          sampleString.Delete(pos,1); 
          sampleString.Insert(pos,"_"); 
         }       
         lastSpacePos=pos; 
         i=pos+1; 
        } 
        else 
         i++; 
       } 
       sampleString.Remove(' '); 

누락 된 간단한 방법이 있습니까?

while(sampleString.Replace(" "," ")); 

을 그리고 밑줄 하나 개의 공간을 대체 :

sampleString.Replace(" ",'_'); 
당신은 더 이상 공간 쌍이 발견 될 때까지 하나 개의 공간이 공백을 대체 시도 할 수 있도록

답변

5

Replace

찾을 대체 할 문자 수를 반환
+0

Genius !!! 고마워요 파블로. –

+0

@Codename_DJ 환영합니다! 답을 좋아하면 그 아래의 표시를 클릭하여 답을 수락 할 수 있다는 것을 기억하십시오. –

+0

그래 : P .. 나는 이미 정답으로 만들려고 노력했다. 그러나 2 분 후에 대답을 선택할 수 있다고하는 팝업이 나타났습니다. –