반응형
자료형
string 은 기본 자료형이 아니라 객체이다.
char형 배열은 기본 자료형이다.
string은 객체이기 때문에 c언어에 없다. c++부터 제공하는 클래스이다.
차이
string은 마지막에 \0을 담지 않는다.
즉, string은 문자열의 마지막을 null문자로 구분하는것이 아니다.
char형 배열은 마지막에 \0을 담는다. 즉, char형 배열은 \0로 문자열의 마지막을 구분한다.
string은 애초에 '\0'을 담지 못한다.
그러나 char형 배열은 '\0'을 사용자가 임의로 넣을 수 있다. 따라서
char c[] = "app\0le"
이라고 선언후 출력하면 app까지만 출력된다. 사용자가 임의로 넣은 \0을 보고서 문자열의 마지막이라고 판단하기 때문이다.
string과 char[]를 구분해서 사용하도록 하자. 절대 둘이 같은것이 아니므로 마구잡이로 섞어 사용하다가는 코드가 망가질 수도 있다.
반응형
'Programming > C,C++' 카테고리의 다른 글
[C++] 자료형 변환(char* => int, int => char*, int => char, char => int) (0) | 2020.05.09 |
---|---|
[C/C++] 문자열 엔터까지 한번에 받기(공백 포함해서 받기) + 문자열 파싱 (0) | 2020.05.09 |
[char*, char[], const char* ] 문자열 상수, 문자열 변수 이해 (0) | 2020.03.31 |
[C++ 소켓 스레드통신] 스레드클래스를 직접 만들고 소켓통신 구현하기 (0) | 2020.03.30 |
[C/C++] 배열과 벡터 속도차이 비교 테스트 (0) | 2020.03.22 |