저번에 질문 올렸는데 답변이 불충분한것 같아 다시 질문드립니다
1권 206페이지 C코드에 대해서 질문있습니다
C언어에서 문자배열은 끝에 항상 \0(널문자)가 붙는데 자동으로 붙는건지, 아니면 코딩시 직접 입력해야하는지 궁금합니다.
1권 52페이지에 의하면 널문자는 자동으로 붙는것같은데 자동으로 붙는게 맞다면 왜 munja[1]='\0'; 을 하는건가요?
munja에 실질적으로 들어있는 문자는 1글자라서 이를 배열로 만들어주기위해 별도로 munja[1]='\0';을 쓴건가요?
널문자를 추가함으로서 배열이 아닌 문자열로 인식시킨다는 것은 알고 있습니다.
널문자를 별도로 입력해야한다면 배열 a의 경우는 scanf("%s", a); 에서 입력을 한건가요? 아니면 "%s"에 의해 배열 a에 문자열로 인식시켰으므로 \0이 자동으로 붙은건가요?
안녕하세요.
52쪽과 같이 문자형 배열에 "KOREA"와 같이 큰따옴표로 묶인 글자를 저장하면 문자열로 처리됩니다.
배열의 마지막에 자동으로 '\0'이 추가되어 문자열로 인식됩니다.
206쪽에서는 큰따옴표로 묶인 글자를 배열에 저장하는 것이 아니라
배열 요소 값을 직접 저장하는 형태인데, 이런 경우 문자열로 인식되도록 하려면
munja[1] = '\0'; 와 같이
배열에 저장된 문자들 끝에 '\0'을 저장하여 문자열로 인식되도록 해야 합니다.
206쪽에서 하나의 문자만을 저장하고도 이를 문자열로 인식시키려고 끝에 '\0'을 저장한 이유는
왼쪽 전문가의 조언에서도 언급했듯이 atoi() 함수를 사용하기 위함입니다.
오늘도 즐거운 하루 되세요.
-
*2018-07-02 10:33:38
안녕하세요.
52쪽과 같이 문자형 배열에 "KOREA"와 같이 큰따옴표로 묶인 글자를 저장하면 문자열로 처리됩니다.
배열의 마지막에 자동으로 '\0'이 추가되어 문자열로 인식됩니다.
206쪽에서는 큰따옴표로 묶인 글자를 배열에 저장하는 것이 아니라
배열 요소 값을 직접 저장하는 형태인데, 이런 경우 문자열로 인식되도록 하려면
munja[1] = '\0'; 와 같이
배열에 저장된 문자들 끝에 '\0'을 저장하여 문자열로 인식되도록 해야 합니다.
206쪽에서 하나의 문자만을 저장하고도 이를 문자열로 인식시키려고 끝에 '\0'을 저장한 이유는
왼쪽 전문가의 조언에서도 언급했듯이 atoi() 함수를 사용하기 위함입니다.
오늘도 즐거운 하루 되세요.