// education

문자열 다루기 (문자 배열과 string.h 함수)

C 언어에는 독립된 문자열(String) 타입이 존재하지 않습니다. 대신 문자의 배열(char[]) 마지막에 문자열의 끝을 알려주는 **널 문자(Null Character, \0)**를 넣어 문자열을 표현합니다.


1. C 문자열과 널 문자 (\0)

char str[6] = "Hello"; // 실제로는 H, e, l, l, o, \0 총 6개 바이트

2. 주요 문자열 처리 함수 (<string.h>)

함수 역할 사용 예시
strlen(str) 널 문자를 제외한 순수 문자열 길이를 반환 strlen("Hello") $
ightarrow$ 5
strcpy(dest, src) 문자열을 복사하여 붙여넣음 strcpy(target, "ABC");
strcat(dest, src) 원본 뒤에 다른 문자열을 이어 붙임 strcat(str, " World");
strcmp(s1, s2) 두 문자열을 사전순 비교 (같으면 0 반환) if(strcmp(a, b) == 0)

3. 문자열 입출력 시 주의점: scanf vs fgets


4. 자주 묻는 질문 (Q&A)

Q. 왜 str1 = str2; 처럼 대입 연산자로 문자열을 한번에 바꿀 수 없나요? A. 배열 이름은 그 자체로 메모리의 첫 주소(상수 포인터)이기 때문에 대입 연산자(=)로 통째로 변경할 수 없습니다. 반드시 strcpy() 함수를 사용하여 내부 문자를 하나씩 복사해야 합니다.

← 이전포인터(Pointer)의 개념과 메모리 주소 다음 →구조체(Structure)와 사용자 정의 타입