2014-01-29 2 views
-1

임의의 길이의 문자열 (반드시 8로 나눌 수있는 것은 아닙니다)이 있습니다.문자열을 더 작은 문자열로 분할합니다. 무작위 길이의 문자열입니다.

이제 모든 8자를 문자열로 변환하고 싶습니다. 나는이 문자열의 끝 부분에 대해 어떻게 든 모릅니다. 마지막 0과 1을 처리하는 방법을 모르겠습니다.

완전히 되돌릴 수 있어야합니다.

Visual Studio 및 C++에서 프로그래밍 중입니다.

의견이 있으십니까? 나는 분명히 자신을 표현하기를 희망한다. 미리 감사드립니다!

+0

따라서이 문자열의 연속 8 문자 하위 문자열이 포함 된 배열을 원하십니까? –

+0

8 (8 비트 = 1 바이트, 1 ASCII 문자 또는 utf-8 인코딩 된 것)로 그룹화를 시작한 다음 남은 것을 볼 수 있습니다. 남은 부분을 최상위 비트 (MSB)에 0으로 채 웁니다. 나는 당신이 상대하고있는 것이 무엇인지 모르겠다. –

+0

chars는 원시 데이터 타입이다. 당신이 요구하는 것은 문자열처럼 보인다. 당신은 실제로 하나의 문자를 원한다면, 또는 당신은 문자의 배열을 찾고 있는데, 그 이유는 그 이유는 그것이 문자열이기 때문입니다. – Mike

답변

0

길이를 찾아서 8로 나누고 마지막을 나머지 크기의 배열에 입력하십시오. 예를 들어 길이가 60 인 배열의 경우 나눌 때 7을 얻고 배열 8에 입력하고이 경우 4 인 크기 나머지 중 하나를 만듭니다.

0
string whole = "01001010101010101000011110101001000101000010000"; 
string pieces[whole.length()/8]; 

for(int i = 0; i< whole.length()/8; i++) 
    pieces[i] = like.substr(i*8,8); 

뭐가 보이지?

for(int i = 0; i < whole.length()/8; i++) 
    cout << "\r\n" + pieces[i] + "\r\n"; 
관련 문제