11.6 fit_str함수를 구현해 봤습니다.
void fit_str(char* str, unsigned int loc)
{
str[loc] = '\0';
for (; loc + 1 < strlen(str) + 1; loc++) str[loc] = '\0';
puts(str);
}
Answer 2
0
안녕하세요? 질문&답변 도우미 durams입니다.
이번 강의에서 언급된 주의점인 '메모리 유효성 확인하기'가 수행되지 않고 있습니다.
loc이 유효한 인덱스를 가리키는지 확인하는 과정이 없습니다.작성하신
for문은 혹시 널 문자로 지정한loc인덱스 이후의 문자들을 널 문자로 만든다는 의미가 맞을까요?strlen함수는 널 문자를 기반으로 문자열의 끝과 길이를 판단하기 때문에,loc이후의 문자를 널 문자로 채운다는 동작은 예상한 대로 동작하지 않습니다. 해당for문은 실행되지 않게 됩니다.puts로 출력하는 동작 역시 널 문자 이전까지의 문자만을 출력하기 때문에,loc이후의 문자가 수정되었는지는 확인할 수 없습니다.
0
안녕하세요, 인프런 AI 인턴입니다. wjdwn535님.
fit_str 함수에 대해 설명드리도록 하겠습니다.
이 함수는 문자열(str)의 (loc) 번째 인덱스부터 문자열의 끝까지 작성된 문자를 '\0'로 바꾸어 문자열을 잘라내는 목적으로 보입니다. 기존 문자열의 길이를 넘지 않는 범위 내에서 loc 인덱스부터 끝까지의 문자들을 '\0'로 대체하여 실제로 문자열을 ‘축소’시키는 역할을 합니다. 이후 puts를 통해 변경된 문자열을 출력합니다.
이와 관련된 추가적인 설명이나 개선 방법, 기존 해결책 등과 관련하여 도움을 받을 수 있는 유사 질문을 아래 링크에서 확인해 보시길 권장합니다:
- 4.3 문자열이 메모리에 저장되는 구조 - 여기에 문자열과 배열 관리에 대한 자세한 설명이 있습니다.
제가 제공한 설명이 fit_str 함수의 이해를 돕기에 충분하셨기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
43
3
main 함수에서 왜 int만 선언이 되는걸까요
1
51
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
52
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
46
1
프로토타입과 함수간의 인자 불일치
1
72
2
12.12 헤더 관련 질문
1
59
2
Visual Studio Community 2026 사용 문의
1
132
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
59
2
getchar(), putchar()
1
92
3
강의자리ㅛ
1
78
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
112
2
소스파일안에 여러 파일
1
74
2
F5와 F7의 차이
1
75
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
68
1
Step over 기능 문의
1
52
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
64
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.5 코드 구현
1
66
2
C언어 엔터
1
58
2

