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

서성준님의 프로필 이미지
서성준

작성한 질문수

홍정모의 따라하며 배우는 C언어

4.3 문자열이 메모리에 저장되는 구조

/0 앞에 띄워쓰기 유무로 자릿수가 변하나요?

작성

·

197

1

char str3[20] = "Hello,\0World";

char str3[20] = "Hello, \0World";


printf("%c\n", str3[10]); 의 값이

, 바로뒤에\0를 치면 l이고

, 하고 한 칸 띄고 \0을 치면 r입니다.

 

h = 0번째

e = 1번째

...

, = 5번째

\0 = 6번째

W = 7번째

o = 8번째

r = 9번째

l = 10번째

d = 11번째

 

중간에 띄워쓰기도 공백으로서 자릿수를 차지해서

위와 같은 결과가 나오는 걸까요?


답변 1

1

안녕하세요, 답변 도우미 Soobak 입니다.

말씀하신 내용이 맞습니다.

문자 사이의 띄어쓰기(공백) 또한 하나의 문자로 카운트됩니다.
(공백 또한 문자로서, ASCII 코드가 32 인 문자입니다.)

따라서, "Hello,\0World""Hello, \0World" 는 서로 다릅니다.
전자에서는 str3[10]l 이며, 후자에서는 str3[10]r 이 됩니다.

서성준님의 프로필 이미지
서성준

작성한 질문수

질문하기