입력받은 문자열 중 각 문자의 아스키코드에 해당하는 값을 2진수 문자열로 바꾸고 싶단 말인가?
그렇다면 itoa 와 유사한데, 1바이트에 해당하는 8비트의 빈 곳을 0으로 채우고 싶다면 itoa 가 적합하지 않아.
char를 2진수 문자열로 만드는 함수를 하나 만들지.
char* c2b0(char value, char* string)
{
unsigned int v = (unsigned int)value;
for(int i = 7; i >= 0; --i, v >>= 1)
string[i] = (v & 1) + '0';
string[8] = 0;
return string;
}
이제 가져다 써보자.
char merge_string[256] = {0, };
char temp_string[256];
char input_string[256];
scanf("%s", input_string);
int len = strlen(input_string);
for(int i = 0; i < len; ++i)
{
strcat(merge_string, c2b0(input_string[i], temp_string));
strcat(merge_string, " ");
}
puts(merge_string);
뭐 이러면 되겠지?
형 고마워. 으으 근데 내가 하고있던 조잡한 소스랑 완전 다르다... 갈아엎어야겠당...ㅠㅠ 끆...
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.