char형 배열

char형 배열: 이것은 일반적으로 문자열을 저장할 목적으로 많이 사용된다.
왜냐하면 char형 배열은 메모리의 연속된 저장 공간에 문자들을 저장하는 것이 가능하기 때문이다. 즉 , char형 배열은 문자열을 저장하는 변수라고 생각하면 된다.

문자열이란 무엇인가 ? 문자의 연속된 집합이다 . 따라서 , 문자열 저장은 char형 배열을 이용한다. 그런데 , 문자열 저장을 위한 char 형 배열 사용에 주의할 점이 있다. 그것은 저장할 문자열의 길이보다 하나 더 크게 배열의 길이를 선언해야 한다.
예컨대 , “car” 라는 문자열을 저장하려면 배열의 길이는 최소 4이상이어야 한다.
즉 각각의 문자들 ‘c’ , ‘a’ , ‘r’ 이 저장될 공간 이외에 빈 공간을 1개 이상 미리 확보 해 놓아야 한다.
이러한 빈 공간을 준비하는 이유는 null 문자를 저장하기 위함이다.
그렇다면 null 문자는 왜 char형 배열에서 사용하는 것일까 ?
그 이유는 널 문자가 문자열의 끝임을 알려주기 위해서 이다. 만약에 널 문자가 없다면 어디 에서 어디 까지 문자열인지 알 수 없기 때문에 쓰레기 값이 출력 된다.
일단 아래 예제를 봅시다.

char형 배열 예제

Example 01
  • 5 행 : char형 배열을 선언했다. 그리고 문자열로 초기화 하고 있다. 배열의 초기화 방법 중에서 배열 길이를 생략한 초기화 방법을 사용하고 있다. 따라서 컴파일러가 문자열의 길이를 고려하여 배열의 길이를 정해준다.
    Happy 는 다섯 글자 , 공백 문자 한 글자 , Life! 는 다섯 글자 , null 문자 따라서 총 12 개의 저장 공간이 필요하므로 배열 길이는 12 가 된다.
  • 7 행 : 5 행에 선언한 배열의 길이를 size of 연산자를 이용하여 출력한다. 출력 값은 12 가 나온다. 이것은 null 문자를 저장할 공간을 고려한 것이다.
  • 8 행 ~ 9 행 : null 문자의 형태를 알아보기 위해서 각각 문자와 정수 형태로 출력해 본다. null 문자의 아스키 코드 값은 0 이다. 따라서 정수 형태의 출력은 0 이 나오게 된다.
  • char형 배열에 저장되어 있는 10 번째 ! ( 느낌표) 를 @ 로 바꾸어 본다.
    즉 배열 요소를 이용하여 문자열을 변경해 보는 것이다.

위 예제의 실행 결과는 아래와 같다.

배열 str 의 크기 : 12
널 문자의 문자형 출력 :
널 문자의 정수형 출력 : 0
문자열 출력 : Happy Life@

널 문자의 정수형 출력에서 보듯이 널 문자의 아스키 코드 값은 0 이다. 이것은 공백 문자의 아스키 코드 값과 혼동하지 말아야 한다. 공백 문자의 아스키 코드 값은 32 이다.