본문 바로가기
C언어

[C언어] 문자열 저장

by 에파 2021. 5. 13.
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 헤더 파일을 포함해야 합니다.

댓글