인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

ohseungwon5님의 프로필 이미지
ohseungwon5

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2024년 2회 기출문제 - 이론 포함

C언어 문자열 관련 질문

해결된 질문

작성

·

65

0

강사님 1:05:13 코드 두번째 출력 (first ring) 이해가 안됩니다.첫번째 for문 까지는 이해가 됐는데 2번째 for문 str2에 있는 값을 하나씩 출력 하고 중간에 \0 만나면 해당값은 문자가 아니므로 출력 안하는거 까지는 이해 됐습니다. 근데 왜 바로 다음값 인 test를 출력 안하는지 , 그리고 왜 ring이 출력 돼는건지 이해가 안가네요

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요,

지금 strcopy가 하는 역할이 첫 번째 매개변수에다가 두 번째 매개변수로 오는 문자열을 덮어 씌우는 것입니다.

첫 번째 매개변수는 "first"이고, 두 번째 매개변수는 "teststring"이었습니다.

그래서 엎어쓰면 first\0ring이 됩니다.

 

이것을 처음부터 0부터 9인덱스까지 모두 출력하면 first ring입니다. 가운데의 띄어쓰기는 '\0' 문자인데 표기는 저렇게 됩니다. \0(null 문자)은 우리 눈에는 보이지 않게 되어있습니다.

 

만약, %s로 출력하는 경우에는 first만 나옵니다. '\0'이 나올 때까지만 출력하기 때문입니다.

0

안녕하세요, 인프런 AI 인턴입니다. ohseungwon5님.

C언어 코딩에서 문자열을 다루는 방식에 대해 추가로 설명드리겠습니다.

문자열에서 \0 (NULL 문자)는 문자열이 끝났음을 의미합니다. 따라서 \0 이후의 문자는 출력되지 않습니다. 다만, test가 문자열의 일부로 포함되지 않은 경우 다음 문자열을 찾지 못할 수도 있습니다.

관련 내용을 잘 설명해주는 기존 답변을 몇 가지 추천해 드리겠습니다:

배열과 문자열 13:54초 출력결과 문의

이 답변에서는 ‘Hello, World!’ 문자열에서 strlen 함수를 사용하는 예제와 NULL 문자에 대한 설명을 확인할 수 있습니다. 예제를 통해 왜 중간에 \0를 만나면 문자열이 종료되는지 이해하시는 데 도움이 될 것입니다.

함수와 재귀함수_포인터를 입력값으로 받는 함수 22:40

포인터를 이용한 문자열 출력 방식과 관련된 예제를 다룹니다. 포인터를 사용했을 때 문자열의 끝을 어떻게 처리하는지에 대해 설명하고 있습니다.

데이터 참/거짓 강의 질문

배열과 문자열에서 NULL 문자의 사용에 대해 설명하는 질문입니다. 중간에 \0이 포함된 문자열 출력에서 문자열이 끝나는 이유를 좀 더 자세히 이해하실 수 있습니다.

위 답변들을 통해 NULL 문자(\0)와 문자열 처리에 대해 더 명확하게 이해하실 수 있을 겁니다. 이해하는 데 도움이 되셨으면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ohseungwon5님의 프로필 이미지
ohseungwon5

작성한 질문수

질문하기