책 내용 질문하기
1권 문자열
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
105
조회수
265
작성일
2020-07-02
작성자
탈퇴*원
첨부파일
문자열 예제에서 Java는 문자열 저장할때 널 값을 안가지나요? 이 예제가 p.86 3번 C언어 문제랑 비슷한거같은데 C언어문제에서는 널값을 포함해서 배열크기가 만들어지는데 왜 자바에서는 글자길이에 맞춰서 만들어지나요? 코드의 차이인가요?? 답변부탁드립니다
답변
2020-07-03 10:57:24

안녕하세요 길벗수험서 운영팀입니다.

 

106쪽의 예제를 말씀하신 것 같아 이걸로 설명드리겠습니다.

 

먼저 C와 Java의 문자 배열 처리는 동일합니다.

다만 String 객체의 경우 널문자를 고려하지 않습니다. 애초에 얘는 문자배열도 아니죠.

Java만의 문자열 처리를 위한 특수한 객체입니다.

이 객체에서 문자열의 길이를 뽑으라고 하는 경우, 정확히 문자열의 개수가 반환됩니다.

 

또한 106쪽의 예제의 문자 배열에는 문자열이 저장된 것이 아닌 배열의 각 요소에 문자가 하나씩 하나씩 저장된 것입니다. 

예를 들어,

 

char a[] = "abc";

이 코드의 a배열은 4개의 요소를 갖습니다. a, b, c, NULL

 

char a[4];

a[0] = 'a', a[1] = 'b', a[2] = 'c';

위 코드는 어떤가요. a[3]에 널이 들어갔을까요?  a[3]은 어떠한 값도 들어가지 않습니다.

 

문자열의 끝을 의미하는 널문자가 자동으로 들어가기 위해서는 [문자열]을 입력하는 코드가 존재해야 합니다. 106쪽의 예제의 경우 문자배열 st에 문자열을 넣는 것이 아닌 위의 두번째 코드처럼 각 요소에 값을 넣는 방식을 사용하기 때문에 널문자가 들어갈 이유가 없죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-07-03 10:57:24

    안녕하세요 길벗수험서 운영팀입니다.

     

    106쪽의 예제를 말씀하신 것 같아 이걸로 설명드리겠습니다.

     

    먼저 C와 Java의 문자 배열 처리는 동일합니다.

    다만 String 객체의 경우 널문자를 고려하지 않습니다. 애초에 얘는 문자배열도 아니죠.

    Java만의 문자열 처리를 위한 특수한 객체입니다.

    이 객체에서 문자열의 길이를 뽑으라고 하는 경우, 정확히 문자열의 개수가 반환됩니다.

     

    또한 106쪽의 예제의 문자 배열에는 문자열이 저장된 것이 아닌 배열의 각 요소에 문자가 하나씩 하나씩 저장된 것입니다. 

    예를 들어,

     

    char a[] = "abc";

    이 코드의 a배열은 4개의 요소를 갖습니다. a, b, c, NULL

     

    char a[4];

    a[0] = 'a', a[1] = 'b', a[2] = 'c';

    위 코드는 어떤가요. a[3]에 널이 들어갔을까요?  a[3]은 어떠한 값도 들어가지 않습니다.

     

    문자열의 끝을 의미하는 널문자가 자동으로 들어가기 위해서는 [문자열]을 입력하는 코드가 존재해야 합니다. 106쪽의 예제의 경우 문자배열 st에 문자열을 넣는 것이 아닌 위의 두번째 코드처럼 각 요소에 값을 넣는 방식을 사용하기 때문에 널문자가 들어갈 이유가 없죠.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.