C구조체와 문자열

문자열 기본

널 종료 문자 기반의 C 문자열과 `string.h` 함수들을 이해하기 위한 기본 규칙을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

c
char name[16] = "Mina";
size_t length = strlen(name);

설명

  • C 문자열은 사실상 char 배열이며, 끝에는 널 종료 문자 \0가 붙습니다.
  • 문자열 길이는 메모리 크기와 다를 수 있으므로 strlen으로 실제 길이를 구합니다.
  • 문자열 비교는 ==가 아니라 strcmp를 씁니다.
  • 문자열 복사는 strcpy, 길이를 제한한 복사는 strncpy 계열을 이해하고 써야 합니다.

짧은 예제

c
#include <stdio.h>
#include <string.h>

int main(void) {
    char city[16] = "Seoul";
    char copy[16];

    strcpy(copy, city);

    printf("length=%zu same=%d\n", strlen(copy), strcmp(city, copy) == 0);
    return 0;
}

빠른 정리

항목설명
char[]문자열을 담는 가장 기본적인 형태
\0문자열 끝을 나타내는 문자
strlen문자열 길이 계산
strcmp문자열 사전식 비교
strcpy한 문자열을 다른 버퍼로 복사

주의할 점

버퍼 크기보다 긴 문자열을 복사하면 메모리를 덮어쓸 수 있습니다. 문자열은 항상 버퍼 크기와 널 종료 문자까지 함께 생각해야 합니다.