강의

멘토링

로드맵

Inflearn brand logo image

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

sew님의 프로필 이미지
sew

작성한 질문수

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

구조체

4:20 문자열 복사 질문

해결된 질문

작성

·

38

0

4:20 이부분에서 for문을 이용해서 modelName1[]에 있던 문자열을 myCar.model[i] 배열로 복사하는것인데 for문 실행으로는 NULL문자를 제외한 문자열들만 복사가 되기 때문에 for문 바깥에서 myCar.model[i] = '\0'; 이라는 코드로 NULL 문자를 마저 복사해주는 게 맞나요?? 제가 이해한 것이 맞는지 질문드립니다

답변 2

0

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

네 정확하게 이해하셨습니다.

위에 보시면 아시겠지만 for 반복문은 NULL 문자를 만나면 아예 끝나버립니다.

 

반복문 안에서 문자열을 정상적으로 막았어야 했는데, 그냥 블럭이 끝나버린 것이죠.

그래서 아래에서 문자열 종료 문자를 일부러 삽입한 것입니다.

 

"복사"는 아니고, 그냥 끝났다는 표시를 굳이 번거롭게 넣은 것이죠.

(그렇게 해야지 문자열 관련 연산이나 표기를 할 때 오류가 발생하지 않기도 합니다.)

0

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

질문하신 내용은 문자열 복사와 관련하여 for 문을 통한 문자 복사의 특성을 잘 이해하고 계신 것 같습니다. 일반적으로, for 문을 사용해 문자열을 배열로 복사할 때, 루프는 문자열의 각 문자를 '\\0' (null 문자)를 만나기 전까지 복사합니다. 따라서 문자열을 종료하는 null 문자는 for 문에서는 복사되지 않으므로, for 문 이후에 myCar.model[i] = '\\0'; 이렇게 null 문자를 명시적으로 추가하는 코드를 작성하게 됩니다.

이를 통해 해당 배열이 문자열로 올바르게 종료됨을 보장하며, 이와 같은 방식은 C 언어에서 문자열을 처리할 때 매우 일반적입니다. 이는 강의에서 다루어진 개념이며, null 문자는 문자열의 끝을 명시하기 때문에 데이터를 보관하고 처리할 때 필수적입니다.

관련하여 참고하시면 도움될 만한 몇 가지 유사한 질문들을 공유합니다:

이 자료들을 통해 구조체와 문자열 처리 방식에 대한 구체적인 이해를 키워보시기 바랍니다.

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

sew님의 프로필 이미지
sew

작성한 질문수

질문하기