char형 배열의 선언과 초기화
char형 배열을 선언할 때 저장할 문자열의 길이보다 최소한 하나 이상 크게 배열을 선언
여분의 공간이 필요한 이유
==>널 문자 (\0)를 저장하기 위해서
1) 문자 상수로 하나씩 초기화
char str[80] = {'a', 'p', 'p', 'l', 'e', 'j', 'a', 'm'};
==> 이렇게 해도 가능하지만 쉽지 않다
2) 문자열 상수로 한 번에 초기화
char str[80]= "applejam";
==> 문자열 초기화는 대부분 이렇게 한다
널 문자의 용도
- 널 문자란 char형 배열에 저장된 0을 의미
- 문자열의 끝을 표시
*char형 배열 선언 시 초기화하지 않은 경우
char str[80]; // 배열 선언, 초기화 아직 안됨
str[0] = 'a'; // 배열 요소에 직접 문자 대입
str[1] = 'p';
str[2] = 'p';
str[3] = 'l';
str[4] = 'e';
str[5] = '\0'; // 마지막 문자 다음에 반드시 널 문자 대입!
*char형 배열 선언 시 주의할 점
1. 배열의 크기는 최대한 넉넉하게 선언해야 한다
char str[80] = "apple";
==> 널 문자까지 6칸밖에 차지하지 않지만 배열의 크기를 80으로 지정해 혹시 모를 상황에 대비할 수 있다
2. 배열 요소의 개수는 최소한 '문자열 길이 + 1' 이어야 한다
==> 널 문자로 끝을 표시하므로 + 1 해주어야 한다
문자열 대입
strcpy 함수는 char형 배열에 새로운 문자열을 저장하는 함수
#include <stdio.h>
#include <string.h> //문자열 관련 함수 원형을 모아놓은 헤더 파일
int main(void)
{
char str1[80] = "cat";
char str2[80];
strcpy(str1, "tiger");
strcpy(str2, str1);
printf("%s, %s\n", str1, str2);
return 0;
}
strcpy 함수 기본 사용법
strcpy(저장된 배열명, 저장할 문자열);
strcpy 함수로 문자열 상수를 char형 배열에 대입
strcpy(str1, "tiger");
==> str1 이라는 char형 배열에 문자열 상수를 대입
char형 배열에 저장된 문자열을 다른 char형 배열에 대입하기
strcpy(str1, str2);
==> str1이라는 char형 배열에 str2이라는 char형 배열 대입
*주의할 것
char str[80];
str = "apple"; //이런식으로 배열에 문자열을 대입하면 오류
==> 꼭 strcpy함수를 사용해서 대입할 것
문자열 전용 입출력 함수 : gets, puts
빈칸을 포함하여 문자열을 입력하는 gets 함수
gets(char형 배열명);
gets와 짝을 이뤄 문자열을 출력하는 puts 함수
puts(char형 배열명);
*문자열의 끝에 널 문자가 없다면 쓰레기값이 출력된다
'C 언어 > [책 정리] 혼자 공부하는 C언어' 카테고리의 다른 글
포인터의 기본 개념 (2) (0) | 2022.12.20 |
---|---|
포인터의 기본 개념 (1) (0) | 2022.12.20 |
배열의 선언과 사용 (0) | 2022.12.12 |
여러 가지 함수 유형 (0) | 2022.12.08 |
함수의 작성과 사용 (0) | 2022.12.08 |