使用指標在C語言中檢查字串是否為迴文


假設我們有一個字串 s。我們需要檢查給定的字串是否為迴文。我們需要使用 C 語言中的指標來解決這個問題。

因此,如果輸入類似於 s = "racecar",則輸出為 True。

為了解決這個問題,我們將遵循以下步驟:

  • length := 字串的長度
  • forward := 指向字串的第一個字元
  • reverse := 指向字串的最後一個字元
  • 當 reverse 的位置 >= forward 的位置時,執行以下操作:
    • 如果 reverse 指向的字元與 forward 指向的字元相同,則:
      • forward 加 1,reverse 減 1
    • 否則:
      • 退出迴圈
  • 如果 forward 的位置 >= reverse 的位置,則:
    • 返回 True
  • 返回 False

讓我們看看下面的實現來更好地理解:

示例

 線上演示

#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

更新於: 2020-12-29

8K+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告