728x90
C언어 문자열 저장
C언어에서 문자열은 char형의 배열 형태로 만들어 저장합니다.
char fruit[6] = "apple";
이 때, 문자열의 길이보다 배열의 크기를 하나 더 크게 잡아야합니다. 왜냐하면 컴파일러가 문자열의 끝에 \0을 자동으로 추가하기 때문입니다. \0은 널 문자라고 부르며, 문자열의 끝을 표시하는 특별한 문자입니다.
#include <stdio.h>
int main(void)
{
char fruit[20] = "strawberry";
printf("딸기 : %s\n", fruit);
printf("딸기쨈 : %s %s\n", fruit, "jam");
return 0;
}
/*
<Run>
딸기 : strawberry
딸기쨈 : strawberry jam
*/
문자열은 char형을 배열 형태로 만들어 저장하며 %s로 출력합니다.
char 배열에 새로운 문자열을 저장하려면 어떻게 해야 할까요? 아래와 같은 구문을 컴파일하면 에러가 뜹니다.
fruit = "banana";
대입 연산은 대상 자료형의 크기가 일정해야 하는데 선언에 따라 크기가 달라지는 char 배열은 대입 연산을 사용할 수 없습니다. 또한 배열명은 주소 상수이므로 변수만 가능한 대입 연산자 왼쪽에 쓸 수 없습니다.
char 배열에 새로운 문자열을 저장하려면 strcpy 함수를 사용해야 합니다.
#include <stdio.h>
#include <string.h>
int main(void)
{
char fruit[20] = "strawberry";
printf("%s\n", fruit);
strcpy(fruit, "banana");
printf("%s\n", fruit);
return 0;
}
/*
<Run>
strawberry
banana
*/
strcpy 함수를 사용하려면 소스 코드에 string.h 헤더 파일을 포함해야 합니다.
'C언어' 카테고리의 다른 글
[C언어] 예약어와 식별자 (0) | 2021.05.20 |
---|---|
[C언어] const를 사용한 변수 (0) | 2021.05.14 |
[C언어] 실수 자료형, double 을 사용하는 이유 (0) | 2021.05.12 |
[C언어] unsigned 정수 자료형, 사용 이유 (0) | 2021.05.11 |
[C언어] 정수 자료형 (0) | 2021.05.10 |
댓글