작성
·
57
0
선생님~ 질문있습니다
문자열이 나열되었을때
\n도 개수를 세어야하는건가요?
맞는말인지는 잘 모르겠지만
예를들어
char a[] ="가,나,다"
일 경우
%c의 총 개수나 인덱스 값을 나타낼 때 4가 되고,
%s도 동일하게 4로 나타내는 것이 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
rsrarsra님,
문자열 내에 ‘\n’ (newline) 문자는 개수를 셀 때 포함됩니다.
주어진 예제 char a[] = "가,나,다";
에서는 특수 문자를 포함하지 않았지만, ‘\n’이 포함된 경우를 생각해 봅시다.
아래와 같은 문자열이 있다면:
char a[] = "가,나\n다";
이 경우, 문자열의 길이는 문자열 끝의 null 문자 (‘\0’)를 포함해 7이 됩니다:
- ‘가’ (1)
- ‘,’ (1)
- ‘나’ (1)
- ‘\n’ (1)
- ‘다’ (1)
- ‘\0’ (null 문자, C 문자열의 끝, 1)
따라서, ‘\n’을 포함하게 되면 개수에 포함되어, ‘\0’를 포함해 전체 길이는 7이 되는 게 맞습니다.
%c
의 경우는 각각의 문자를 의미하고, 숫자를 사용하지 않는다면 그냥 문자의 수를 카운트하게 됩니다.
%s
는 문자열 전체를 출력하므로 위의 문자열에서는 “가,나\n다”로 출력됩니다.
정리하면, 특수 문자인 ‘\n’도 문자열 내에 포함되므로 개수나 인덱스를 계산할 때 반드시 포함해야 합니다.
도움이 되셨기를 바랍니다!
이미지 설명:
추가 문의나 도움이 필요하시면 언제든지 말씀해 주세요!