Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

포인터를 사용하여 C에서 문자열이 회문인지 확인

<시간/>

문자열 s가 있다고 가정합니다. 주어진 문자열이 회문인지 아닌지 확인해야 합니다. C에서 포인터를 사용하여 이 문제를 해결해야 합니다.

따라서 입력이 s ="racecar"와 같으면 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 길이 :=문자열의 크기
  • forward :=문자열의 첫 번째 문자를 가리킴
  • reverse :=문자열의 마지막 문자를 가리킴
  • 동안 역방향 위치>=정방향 위치, do
    • 역방향으로 가리키는 문자가 정방향으로 가리키는 문자와 같으면
      • 앞으로 증가 및 뒤로 1 감소
    • 그렇지 않으면
      • 루프에서 나오다
  • 정방향 위치>=역방향 위치이면
    • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

#include <stdio.h>
#include <string.h>
int solve(char *string){
   int length;
   char *forward, *reverse;
   length = strlen(string);
   forward = string;
   reverse = forward + length - 1;
   for (forward = string; reverse >= forward;) {
      if (*reverse == *forward) {
         reverse--;
         forward++;
      } else
         break;
   } if (forward > reverse)
      return 1;
   else
      return 0;
}
int main(){
   char string[] = "racecar";
   printf("%d", solve(string));
}

입력

"racecar"

출력

1