스택 오버플로우 답변글 참조
->Only C strings (char arrays which are intended for storing strings) had the null terminator.
c++의 string 객체는 c에 있는 string과는 다르게 마지막에 널문자를 포함 시키지 않는다.
char buffer[10] vs string buffer
1. char buffer[10]
맨 마지막 원소가 Null character
index buffer[9] = '\0' (null character)
index |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Value |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
'\0' |
2. string buffer = "123456789" (don't has 'null character')
[%s의 원리]
맨끝 '\0' 만날 때 까지 문자를 하나씩 읽어들여 입출력.
따라서 string buffer를 %s로 입출력하고자 하면 '\0'을 만나지 않아 오류 발생.
'C > C++' 카테고리의 다른 글
cmath, math.h (feat. 백준 3053 택시 기하학) (0) | 2019.12.08 |
---|---|
Copy Constructor (0) | 2019.11.20 |
[백준 2752] 세 수 정렬하기 (0) | 2019.10.28 |
[기초 100제] 98번 설탕과자 뽑기 (0) | 2019.10.27 |
[코드업 기초 100제 - 85번] 소리 파일 저장용량 계산하기 (0) | 2019.10.07 |