int형 을 char 문자형으로 변환할수 있는 방법은 없는지???

irum66의 이미지

#include<stdio.h>

int main()
{
        int k=1;
        char y;
        y =(char)k;
        printf("----%c-----",y);
}

int k 를 char 형으로 형변환이 되지 않습니다... 혹시 int 형을 char형으로
변환할수 있는 방법이 있는지 궁금합니다.. [/code]

bucketquai의 이미지

잘되는데요?
혹시 1이라서 출력이 안되는거 아닌가요? 1은 SOH이니깐 다른 걸 찍어보세요

yui의 이미지

irum66 wrote:
#include<stdio.h>

int main()
{
        int k=1;
        char y;
        y =(char)k;
        printf("----%c-----",y);
}

int k 를 char 형으로 형변환이 되지 않습니다... 혹시 int 형을 char형으로
변환할수 있는 방법이 있는지 궁금합니다.. [/code]

ascii 코드 1이 문자 '1'이 아니지요.
만약 int k의 k가 1글자의 숫자라면

#include<stdio.h>

int main()
{
        int k=1;
        char y;
        y =(char)k + 0x30;
        printf("----%c-----",y);
}

처럼 해주면 원하시는 결과를 얻을 수 있습니다.

혹시 숫자가 1자리가 아니라면
문자열로 바꾸셔야 합니다.
sprintf등의 함수를 사용하세요.

은빛연어의 이미지

irum66 wrote:
#include<stdio.h>

int main()
{
        int k=1;
        char y;
        y =(char)k;
        printf("----%c-----",y);
}

int k 를 char 형으로 형변환이 되지 않습니다... 혹시 int 형을 char형으로
변환할수 있는 방법이 있는지 궁금합니다.. [/code]

integer변수를 char로 형식을 변환해서 char로 넣었으니 문법은 맞습니다. 그리고 컴파일시 오류가 안나는것이 맞습니다... 하지만, 원하는 결과를 얻을 수가 없는것이 맞습니다. 한번 더 생각해 보셔야겠네요.

왜냐하면, 시스템마다 틀리지만 integer의 크기는 4바이트, char의 크기는 1바이트입니다.. 형변환만 해서 "="을 한다고 값이 들어가지는 않지요...

(단, 아래의 코드와 같이 1바이트에 들어있는 integer값을 4바이트 integer로 옮긴 경우 제외...)

main()
{
     /*char에는 interger값으로 -127 ~ + 128까지 넣을수 있습니다.*/
     char aaa = 100;
     int    bbb;

     bbb = aaa;
     printf("[%d]\n", bbb);
}

질문을 검색해 보시면 int를 char로 바꾸는 예를 찾을 수 있을꺼예요..
도움되시길...