문제에서 char str[50] 을 통해 50개의 요소를 갖는 문자형 배열을 지정하였습니다.
다만 gets(str)을 통해 입력받은 것은 "Korea50" 으로 7개의 요소에 지나지 않습니다.
이때 str[6]까지만 요소가 들어가게 되고, str[7]에는 아스키코드 값으로 변환했을 때 0인 널 문자(\0)이 저장되었다고 해설이 되어 있는데
1. str[7]에 저장된 널 문자는 숫자 0이 저장된 것 과는 다른지 궁금합니다. 말 그대로 널 값이기 때문에 아무것도 없는 건지, 아니면 숫자 0을 저장시켜 널을 표현하는 것인지 헷갈립니다.
2. str[8]부터는 어떻게 저장되어 있는지 궁금합니다.
3. 위의 내용이 JAVA와 같은지, 혹은 다르다면 어떻게 다른지 궁금합니다.
안녕하세요 길벗수험서 운영팀입니다.
널 문자(‘\0’)는 "문자열의 끝"을 알리는 용도입니다.
문자열을 저장하는 경우 문자열의 끝을 의미하는 널 문자(‘\0’)가 추가로 저장되며,
출력 시 널 문자는 표시되지 않습니다.
str[8]부터는 아무것도 들어가지 않습니다
java의 경우 문자열을 표현하는 string 이 있기 때문에 널문자가 사용되지 않습니다.
행복한 하루되세요 :)
-
관리자2024-10-28 11:04:47
안녕하세요 길벗수험서 운영팀입니다.
널 문자(‘\0’)는 "문자열의 끝"을 알리는 용도입니다.
문자열을 저장하는 경우 문자열의 끝을 의미하는 널 문자(‘\0’)가 추가로 저장되며,
출력 시 널 문자는 표시되지 않습니다.
str[8]부터는 아무것도 들어가지 않습니다
java의 경우 문자열을 표현하는 string 이 있기 때문에 널문자가 사용되지 않습니다.
행복한 하루되세요 :)