2015-01-27 6 views
0

문자열을 3 또는 4로 연결하는 방법을 배우는 데 어려움을 겪고 있습니다. 더 많은 요소. 다음은 지금 작업중인 코드입니다.C++에서 3 개 이상의 요소에 대한 문자열 연결 (string [i] + string [i + 1] + string [i + 2])

string msgASCII, conHolder;  
for (int i = 0; i < msgASCII.length(); i = i + 3) { 
     conHolder = msgASCII[i] + msgASCII[i+1] + msgASCII[i+2];  

이 코드는 의도하지 않은 것처럼 보입니다. 내가하려고하는 것은 conHolder = 내 문자열 msgASCII의 처음 세 요소를 만드는 것입니다. 따라서 msgASCII = 083097109 (SAM의 경우 ASCII 용) 인 경우 conHolder = "083"으로 설정하여 나중에 다시 char로 설정할 수 있습니다.

for (int i = 0; i < msgASCII.length(); i = i + 3) { 
     concatenateHolder = msgASCII[i] + msgASCII[i+1] + msgASCII[i+2]; 
     concatenateHolder2 = concatenateHolder + msgASCII[i+2]; 

을하지만 concatenateHolder은 시간을 반환하고 concatenateHolder2는 H3을 반환 :

나는 또한이 일을 시도했다.

편집 : 내가 아래에 게시 한 해결책을 찾은 것 같습니다. 하위 문자열 메서드에 대해서는 Fred에게도 감사드립니다. 나는 그것을 대신 사용하는 것이 가장 가능성이 높습니다.

+0

우리는 모든 변수의 유형을 이미 알고있는 것처럼 행동하며 "작동하지 않는다"는 의미는 –

+0

"작동하지 않음"이란 무엇을 의미하며 'msgASCII' 및' conHolder'? –

+1

나는 ['std :: string :: substr'] (http://en.cppreference.com/w/cpp/string/basic_string/substr)에 대해 배울 점이있다. –

답변

1

내 질문에 대한 해결책을 찾은 것 같습니다. 조금 더 많은 정보를 원한다면, msgASCII, conHolder, 그리고 concatenateHolders는 둘 다 타입 문자열이다.

한 가지 해결책은 std :: string :: substr을 사용하는 Fred Larson의 말입니다. 나는 그것이 매우 편리해 보이는 것에 따라 내가 그것과 함께 갈지도 모른다라고 생각한다.

테스트 한 적이없는 다른 방법으로는 첫 번째 값 [0]을 100으로, 두 번째 [1]을 10으로, 세 번째 [2]를 1로 곱합니다 (또는 전혀 곱할 필요가 없습니다).)를 입력 한 다음 함께 추가하십시오. 아직이 코드를 시도하지는 않았지만 작동해야한다고 생각합니다!