61. C언어에서 문자열 처리 함수의 서식과 그 기능의 연결로 틀린 것은?
① strlen(s) - s의 길이를 구한다.
② strcpy(s1, s2) - s2를 s1으로 복사한다.
❸ strcmp(s1, s2) - s1과 s2를 연결한다.
④ strrev(s)-s를 거꾸로 변환한다.
<해설>
C언어 문자열 처리 함수의 기능과 연결 오류 찾기
정답: ③ strcmp(s1, s2) - s1과 s2를 연결한다. (❌ 틀린 설명)
각 선택지 분석 및 올바른 설명
- ① strlen(s) - s의 길이를 구한다. ✅ (올바른 설명)
- strlen() 함수는 문자열 s의 길이를 반환합니다.
- 문자열의 길이는 널 문자(\0)를 제외한 문자 개수입니다.
#include <stdio.h> #include <string.h> int main() { char str[] = "Hello"; printf("Length: %d\n", strlen(str)); // 출력: Length: 5 return 0; }
- 문자열 "Hello"의 길이는 5 (\0 제외).
- strlen()은 문자열의 크기가 아닌 문자 개수를 반환합니다.
- ② strcpy(s1, s2) - s2를 s1으로 복사한다. ✅ (올바른 설명)
- strcpy() 함수는 문자열 s2의 내용을 s1에 복사합니다.
#include <stdio.h> #include <string.h> int main() { char source[] = "World"; char destination[10]; // 충분한 크기 필요 strcpy(destination, source); printf("Copied String: %s\n", destination); // 출력: Copied String: World return 0; }
- 주의: s1의 크기가 충분하지 않으면 버퍼 오버플로우가 발생할 수 있습니다.
- 더 안전한 함수로 strncpy()를 사용하기도 합니다.
- ③ strcmp(s1, s2) - s1과 s2를 연결한다. ❌ (틀린 설명, strcmp()는 문자열 비교 함수)
- strcmp() 함수는 두 문자열을 비교하여 결과값을 반환합니다.
- 반환값:
- 0 → 두 문자열이 같음
- 양수(>0) → s1이 s2보다 큼
- 음수(<0) → s1이 s2보다 작음
#include <stdio.h> #include <string.h> int main() { char str1[] = "apple"; char str2[] = "banana"; int result = strcmp(str1, str2); if (result == 0) printf("Strings are equal\n"); else if (result < 0) printf("str1 is smaller\n"); // 출력: str1 is smaller else printf("str1 is larger\n"); return 0; }
- 올바른 연결:
strcmp(s1, s2) → s1과 s2를 비교한다. - 문자열 연결(Concatenation) 함수는 strcat()입니다.
strcat(s1, s2); // s1에 s2를 연결
- ④ strrev(s) - s를 거꾸로 변환한다. ✅ (올바른 설명, 그러나 표준 라이브러리에 없음)
- strrev() 함수는 문자열을 뒤집어 반환하는 함수이지만,
C 표준 라이브러리에는 존재하지 않습니다. - Windows (MSVC)에서는 지원되지만, GCC 등에서는 직접 구현해야 합니다.
#include <stdio.h> #include <string.h> int main() { char str[] = "hello"; printf("Reversed: %s\n", strrev(str)); // 출력: olleh return 0; }
- GCC에서는 직접 구현해야 함
void reverseString(char *s) { int len = strlen(s); for (int i = 0; i < len / 2; i++) { char temp = s[i]; s[i] = s[len - i - 1]; s[len - i - 1] = temp; } }
- strrev() 함수는 문자열을 뒤집어 반환하는 함수이지만,
결론
함수 기능 설명
strlen(s) | 문자열 길이 반환 | ✅ 올바른 설명 |
strcpy(s1, s2) | s2를 s1에 복사 | ✅ 올바른 설명 |
strcmp(s1, s2) | 문자열 비교 | ❌ 틀린 설명 (연결이 아니라 비교 기능) |
strrev(s) | 문자열 뒤집기 | ✅ 올바른 설명 (표준 함수 아님) |
👉 정답: ③번 (strcmp()는 문자열 비교, 연결이 아니라 비교 함수임!)
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 2회 정보처리기사 기출문제 63번 (0) | 2025.02.26 |
---|---|
2022년 2회 정보처리기사 기출문제 62번 (0) | 2025.02.26 |
2022년 2회 정보처리기사 기출문제 60번 (0) | 2025.02.26 |
2022년 2회 정보처리기사 기출문제 59번 (0) | 2025.02.26 |
2022년 2회 정보처리기사 기출문제 58번 (0) | 2025.02.26 |