C String Limits

C 스타일 문자열은 끝과 크기를 직접 관리한다

`char` 배열은 문자열 전용 객체가 아니므로, 널 문자 공간과 복사 대상 크기를 항상 함께 계산해야 합니다.

끝 표시 마지막에 `\0` 필요
공간 계산 글자 수 + 널 문자 1칸
조작 방식 `<cstring>` 함수 사용
고정 크기

배열 크기는 자동으로 늘지 않음

char name[6] = "Hello";

더 긴 문자열을 넣으려면 처음부터 충분한 버퍼를 준비해야 합니다.

복사 함수

대입 연산자로 문자열 교체 불가

strcpy(dest, src);

목적지 배열이 충분한지 확인하지 않으면 버퍼 바깥을 덮어쓸 수 있습니다.

비교 함수

내용 비교는 `strcmp`로 수행

strcmp(a, b) == 0

배열 이름끼리 `==`를 쓰면 문자열 내용 비교가 되지 않습니다.

"Hello" in char[6]

문자열 길이 5에도 배열은 6칸 필요

H 0
e 1
l 2
l 3
o 4
\0 5
C 스타일

배열과 함수가 분리되어 있음

데이터는 `char[]`에 있고, 길이 계산과 복사, 비교는 별도 함수로 처리합니다.

std::string

문자열 데이터와 동작이 함께 있음

크기 조절, 대입, 연결, 비교를 객체가 관리하므로 일반적인 C++ 코드에서 더 안전합니다.