정보처리기능사 실기 시험 기출 문제 - 문자열 뒤집기
추천 자료: ASP.NET Core 인증 및 권한 부여
문제
다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.
소스 코드 파일명: string_reversal.c
#include <stdio.h>
#include <string.h>
int main()
{
int k, n;
char st[] = "I am Tom!";
char temp;
n = strlen(st);
n--;
for (k = 0; k < n; k++)
{
temp = *(st + k);
*(st + k) = *(st + n);
*(st + n) = temp;
n--;
}
printf("%s\n", st);
}
입력 예시
이 프로그램은 입력을 받지 않습니다.
출력 예시
!moT ma I
해설
이 프로그램은 주어진 문자열을 뒤집어 출력합니다.
char st[] = "I am Tom!";
에서 문자열st
는 "I am Tom!"로 초기화됩니다.n = strlen(st);
를 통해 문자열의 길이를 구하고,n--
로 널 문자를 제외한 인덱스를 얻습니다.for
반복문은 문자열의 처음과 끝부터 시작하여 중간으로 진행하며, 각 위치의 문자를 서로 교환합니다.- 문자열의 모든 문자 위치가 교환되면, 결과적으로 문자열은 원래의 역순으로 배열됩니다.
- 최종적으로 뒤집힌 문자열이 출력됩니다. 이 경우, 출력 결과는 "!moT ma I"입니다.
이 프로그램은 포인터 연산과 배열의 인덱스 접근을 사용하여 문자열을 직접 조작하는 방법을 보여줍니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!