문자형(char) 배열과 문자열
C 언어의 문자열 표현
- C언어에서의 문자열은 일련의 문자들 + 끝을 알리는 널 문자(
\0)로 구성된다.
- 즉 문자열은
char 자료형으로 구성된 배열로 표현할 수 있다.
끝문자 null을 포함해야 하므로, 원래 표현하려는 문자열 길이의 +1 만큼의 크기를 가진다는 점을 주의!
1
2
| 문자열 Hello World!
--> 'H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd' '!' '\0'
|
char형 배열 선언과 초기화
기본적인 선언 방법
1
2
3
4
5
6
7
| char 배열명[배열크기];
char 배열명[배열크기] = {값1, 값2, ...};
char 배열명[] = {값1, 값2, ...};
char 배열명[] = "문자열";
char str[12]; // 11개의 문자를 담을 수 있음 (마지막은 null 문자)
char str[] = "Hello World!";
|
배열의 크기 지정 여부
- 배열의 크기를 지정할 수도 있고, 지정하지 않을 수도 있다.
1
2
| char str[13] = "Hello World!";
char str[] = "Hello World!";
|
문자열 단위로 초기화
1
| char str[] = "Hello World!";
|
1
2
| str --> |H|e|l|l|o| |W|o|r|l|d|!|\0|
1 2 3 4 5 6 7 8 9 10 11 12
|
문자 단위로 초기화
- 문자 단위로 초기화할 때에는 반드시 마지막에 널 문자(
\0)를 추가해야 한다.
1
2
| char str[] = {'H', 'e', 'l', 'l', 'o', ' ',
'W', 'o', 'r', 'l', 'd', '!', '\0'};
|
1
2
| str --> |H|e|l|l|o| |W|o|r|l|d|!|\0|
1 2 3 4 5 6 7 8 9 10 11 12
|
문자열 크기보다 작은 크기의 배열을 선언할 경우
1
| char str[5] = "Hello World!";
|
1
2
| str --> |H|e|l|l|o|
1 2 3 4 5
|
문자열 크기보다 큰 크기의 배열을 선언할 경우
- 배열의 크기만큼 문자가 저장된다.
- 나머지 부분은 null 문자(
\0)로 초기화된다.
1
2
3
4
5
| void str_underflow() {
char str[20] = "Hello World!";
printf("%s\n", str);
printf("%d\n", str[18]);
}
|
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments