3번째 책(부록) p.36에
char e[]="12.3"
이 부분을 동영상에서 마지막에 null값이 있다고 설명해주셨습니다.
null값은 언제 있고 언제 없는건가요?
p.39에 main 다음 첫번째 줄 String str="Infomation!" 은 null값이 없어서 length가 12가 되는게 맞나요?
안녕하세요.
C언어에서 문자 자료형인 char를 이용해 배열을 선언하여 문자열 처리를 할 수 있습니다.
char 형은 본래 한 글자 단위의 문자를 처리하는 자료형인데, 배열을 이용해 문자열을 처리할 수 있으며, 배열을 이용하여 문자열을 처리할 때 문자형 배열 마지막에 자동으로 널 문자가 삽입되어 문자열로 인식됩니다. 이와 같이 char로 선언된 배열에 입력된 하나의 문자로 사용자가 임의로 널 문자를 삽입하여 문자열로 인식되도록 할 수 있습니다. 그 과정이 본서 206쪽에 진행되고 있으니 참고하세요.
JAVA에서는 문자열 자료형을 처리할 수 있는 string 자료형이 있으며, 이를 이용하여 지정한 경우에도 내부적으로는 문자열 마지막에 널문자가 삽입되어 문자열로 인식하는 것입니다.
널 문자는 컴퓨터가 자동으로 인식하도록 하는 것으로 저장된 문자열의 길이에는 영향을 주지 않습니다.
Information! 이라는 문자열의 마지막에도 널 문자가 저장되어 컴퓨터가 인식하지만
실제 문자열의 길이를 산출하는 length 메소드에는 실제 저장된 문자열의 길이만 체크되어 12가 산출되는 것입니다.
36쪽의 char c[] = "123";
에서도 c 배열에 문자열 123이 저장될 때 마지막에 널 문자가 포함되어 인식되지만
실제 처리되는 atoi(c)에서 c는 널이 포함된 123null 이 아니라 123으로 실제 저장된 문자열만 처리 대상이 되는 것과 같은 맥락입니다.
널 문자를 컴퓨터에서 자동으로 인식됩니다. 사용자가 널 문자를 인식해서 사용하는 경우는 문자를 문자열로 강제 인식시키기 위해 의도적으로 포함하는 경우입니다.
오늘도 즐거운 하루 되세요.
-
*2018-06-05 09:36:50
안녕하세요.
C언어에서 문자 자료형인 char를 이용해 배열을 선언하여 문자열 처리를 할 수 있습니다.
char 형은 본래 한 글자 단위의 문자를 처리하는 자료형인데, 배열을 이용해 문자열을 처리할 수 있으며, 배열을 이용하여 문자열을 처리할 때 문자형 배열 마지막에 자동으로 널 문자가 삽입되어 문자열로 인식됩니다. 이와 같이 char로 선언된 배열에 입력된 하나의 문자로 사용자가 임의로 널 문자를 삽입하여 문자열로 인식되도록 할 수 있습니다. 그 과정이 본서 206쪽에 진행되고 있으니 참고하세요.
JAVA에서는 문자열 자료형을 처리할 수 있는 string 자료형이 있으며, 이를 이용하여 지정한 경우에도 내부적으로는 문자열 마지막에 널문자가 삽입되어 문자열로 인식하는 것입니다.
널 문자는 컴퓨터가 자동으로 인식하도록 하는 것으로 저장된 문자열의 길이에는 영향을 주지 않습니다.
Information! 이라는 문자열의 마지막에도 널 문자가 저장되어 컴퓨터가 인식하지만
실제 문자열의 길이를 산출하는 length 메소드에는 실제 저장된 문자열의 길이만 체크되어 12가 산출되는 것입니다.
36쪽의 char c[] = "123";
에서도 c 배열에 문자열 123이 저장될 때 마지막에 널 문자가 포함되어 인식되지만
실제 처리되는 atoi(c)에서 c는 널이 포함된 123null 이 아니라 123으로 실제 저장된 문자열만 처리 대상이 되는 것과 같은 맥락입니다.
널 문자를 컴퓨터에서 자동으로 인식됩니다. 사용자가 널 문자를 인식해서 사용하는 경우는 문자를 문자열로 강제 인식시키기 위해 의도적으로 포함하는 경우입니다.
오늘도 즐거운 하루 되세요.