• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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

18.08.15 21:49 작성 조회수 105

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

감사합니다.