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

youngsu616님의 프로필 이미지
youngsu616

작성한 질문수

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

(기출) 2023년 2회 코드해석 문제

2023 2회 코드문제

해결된 질문

작성

·

37

0

  • 14:00 에서 덮어쓴다 하셨는데

  • 첫입력값이 만약 네글자고 마지막 입력값이 세글자 일 때 마지막 출력은 네글자고 되나요?

  • 예시 ) 첫 입력문ㅡ 김홍길동

  • 마지막 입력문ㅡ 박영희

  • 출력문ㅡ 박영희동<<< 이렇게 되나요?

  •  

답변 2

0

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

아뇨, 무조건 가장 마지막 값으로 덮어 씌워집니다.

지금은 변수 n에 담기는 것이기 때문에 앞에서부터 채우는 것이 아니라 아예 새로 할당입니다.

 

"이름"이라고 2글자만 입력해도 이름이라고 출력됩니다.

0

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

질문해주신 내용은 C언어나 유사한 프로그래밍 언어에서 문자열 처리와 관련된 문제로 보입니다. 일반적으로 문자열을 덮어쓰는 경우, 문자열 크기를 고려해야 합니다.

  1. 덮어쓰기의 기본 원리: 배열에 문자열을 덮어쓸 때는 기존의 길이를 유지하면서 새로운 문자열을 쓰게 됩니다. 첫 입력값이 네 글자이고 마지막 입력값이 세 글자라면, 덮어쓰기 후에 네 번째 문자는 이전 값이 유지될 수 있습니다. 따라서 “박영희”로 덮어쓴 후, 배열엔 “박영희동”이 남아 있을 가능성이 큽니다.

  2. 대표적인 예시와 설명:

    • 예시로 주신 “김홍길동”을 “박영희”로 덮어쓰면 “박영희동”처럼 남은 부분이 나올 가능성이 있습니다.

이는 프로그램의 시작 위치가 ‘박’이고, 끝난 위치에 이전의 데이터 ‘동’이 남아 있는 형태로 남을 수 있기 때문입니다. 이렇게 ‘박영희’로 덮어썼을 때, 길이 계산 규칙이 없다면 결과는 ‘박영희동’이 됩니다.

관련된 참고 게시물

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

youngsu616님의 프로필 이미지
youngsu616

작성한 질문수

질문하기