문자열 뒤집기 프로그램

CBeginner
지금 연습하기

소개

이 랩에서는 주어진 문자열을 뒤집는 C 프로그램을 작성하는 방법을 배웁니다. 이 프로그램은 사용자로부터 입력을 받아 문자열을 뒤집고 결과를 콘솔에 출력합니다. 이 개념은 문자열이 회문 (palindrome) 인지 확인하는 데 사용될 수 있습니다. 회문 문자열은 뒤집어도 동일한 값을 가지기 때문입니다.

참고: 코딩을 연습하고 gcc 를 사용하여 컴파일하고 실행하는 방법을 배우려면 직접 ~/project/main.c 파일을 생성해야 합니다.

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

변수 선언 및 사용자 입력 받기

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

이 단계에서는 두 개의 char 배열 strrev와 세 개의 정수 변수 i, j, count를 선언합니다. str은 사용자가 입력한 원래 문자열을 저장하는 데 사용되고, rev는 뒤집힌 문자열을 저장하는 데 사용됩니다. count는 문자열의 길이를 추적하는 데 사용됩니다. 그런 다음 printf를 사용하여 사용자에게 문자열을 입력하라는 메시지를 표시하고 scanf를 사용하여 이를 읽습니다.

문자열 길이 계산

while (str[count] != '\0') {
   count++;
}
j = count - 1;

이 단계에서는 while 루프를 사용하여 널 문자 \0에 도달할 때까지 원래 문자열을 순회합니다. 각 반복에서 count 변수를 증가시켜 문자열의 문자 수를 계산합니다. 그런 다음 count - 1의 값을 j에 할당합니다. 배열은 인덱스 0 부터 시작하고 j가 원래 문자열의 마지막 문자의 인덱스가 되도록 하려고 하기 때문입니다.

문자열 뒤집기

for (i = 0; i < count; i++) {
   rev[i] = str[j];
   j--;
}
printf("Reversed string: %s\n", rev);

이 단계에서는 for 루프를 사용하여 원래 문자열을 반복합니다. 각 반복에서 원래 문자열의 인덱스 j에 있는 문자를 뒤집힌 문자열의 해당 인덱스 i에 할당합니다. 그런 다음 j를 감소시키고 전체 문자열을 뒤집을 때까지 이 프로세스를 반복합니다. 마지막으로 printf를 사용하여 뒤집힌 문자열을 콘솔에 출력합니다.

전체 코드

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

   while (str[count] != '\0') {
      count++;
   }
   j = count - 1;

   for (i = 0; i < count; i++) {
      rev[i] = str[j];
      j--;
   }
   printf("Reversed string: %s\n", rev);

   return 0;
}

요약

이 랩에서는 주어진 문자열을 뒤집는 C 프로그램을 작성하는 방법을 배웠습니다. while 루프를 사용하여 문자열의 길이를 계산하는 방법과 for 루프 및 인덱스 변수를 사용하여 문자열을 뒤집는 방법을 배웠습니다. 문자열을 조작하는 프로그램을 작성하는 것은 C 프로그래밍에서 중요한 기술이며, 이를 숙달함으로써 많은 유용한 작업을 수행할 수 있습니다.