C출력 결과보통 · 20점#문자열#포인터#함수#반복문

76. 문자열 복사·연결·비교 함수 직접 만들기

다음 C 프로그램의 실행 결과를 쓰시오. (문자 `a`의 아스키 코드는 97이고, 알파벳 소문자는 a부터 z까지 1씩 커진다)

1#include <stdio.h>
2
3int my_len(const char *s) {
4 int n = 0;
5 while (s[n] != '\0') {
6 n++;
7 }
8 return n;
9}
10
11void my_copy(char *dst, const char *src) {
12 while ((*dst = *src) != '\0') {
13 dst++;
14 src++;
15 }
16}
17
18void my_cat(char *dst, const char *src) {
19 my_copy(dst + my_len(dst), src);
20}
21
22int my_cmp(const char *a, const char *b) {
23 while (*a != '\0' && *a == *b) {
24 a++;
25 b++;
26 }
27 return *a - *b;
28}
29
30int main() {
31 char buf[16];
32 my_copy(buf, "cam");
33 my_cat(buf, "era");
34 printf("%s %d\n", buf, my_len(buf));
35 printf("%d\n", my_cmp(buf, "camp"));
36 buf[3] = '\0';
37 printf("%s %d\n", buf, my_cmp(buf, "ca"));
38 return 0;
39}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.