강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Sandy W님의 프로필 이미지
Sandy W

작성한 질문수

C 프로그래밍 - 입문부터 게임 개발까지

문자 vs 문자열

문자 바이트 9가 나와야 하는데

작성

·

171

1

char kor[]= "나도코딩"

printf("%sn",kor);

printf("%dn",sizeof(kor));

위 코드를 출력하면

나도코딩

13

이라고 뜹니다... 9가 나와야 하는데 여러 번 반복해도 계속 13만 나오네요. 띄어쓰기 전혀 안 넣었는데도 왜 그런지 모르겠습니다...

답변 1

2

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요 나도코딩입니다. 대개 한글은 2바이트지만 환경에 따라 한글이 2 바이트, 혹은 3 바이트로 달라질 수 있네요, 사용하시는 환경에서는 3바이트로 인식되어서 나도코딩 = 3바이트 x 4글자 = 12바이트에 맨 뒤에 널 문자를 넣어서 13바이트가 되겠군요. 검증을 위해서는 "나도코딩나도코딩" 이라고 입력했을 때 3바이트 x 8글자 + 널문자 = 25 바이트로 크기가 나옴을 확인하면 되겠습니다. 아래 링크 설명 일부 참고하세요 ^^

http://blog.hippolab.com/?p=61

감사합니다.

Sandy W님의 프로필 이미지
Sandy W

작성한 질문수

질문하기