반응형
C++ 문자열 표현 방법 2가지
●C-스트링 - C언어에서 문자열을 표현하는 방법
●string 클래스 - 문자열을 객체로 다루는 방법
첫번째: C-스트링
1
2
3
4
|
char AA[4]={'w', 'i', 'n', '\0'}; // AA는 문자열 "win"
char BB[4]={'k', 'i', 't', 'e'}; // BB는 단순 문자 배열, 문자열 아님
|
cs |
BB는 끝에 '\0' 문자가 없기 때문에 문자열이 아니고 단순 문자 배열이다. "win"는 4개의 문자들로 구성된 문자열 리터럴이며, 문자열 리터럴을 직접 배열에 저장한다.
1
2
3
|
char CC[4] = "win";
char DD[] = "win"; // DD[] 배열의 크기는 4로 자동 설정
|
cs |
마지막에 '\0'을 추가하기 때문에 배열의 크기는 문자수보다 최소한 1 커야하고, 문자수보다 많이 커도 상관없다.
●cin, >> 연산자로 문자열 입력 받을때 허점
>> 연산자는 공백 문자를 만나면 그 전까지 입력된 문자들을 하나의 문자열로 인식한다.
>> 연산자는 'A'를 출력 후 빈칸을 만나, 문자열 입력이 종료된 것으로 인식한다.
C-string 사용 하기 위해선 #include <cstring>
두번째: string 클래스
C-string은 배열의 크기에 따라 문자열 크기가 고정되지만, string 클래스는 문자열의 크기에 제약이 없다.
C-string 방식보다 문자열 다루기가 쉽다.
string 클래스 사용 하기 위해선 #include <string>
반응형