使用指標在C語言中檢查字串是否為迴文
假設我們有一個字串 s。我們需要檢查給定的字串是否為迴文。我們需要使用 C 語言中的指標來解決這個問題。
因此,如果輸入類似於 s = "racecar",則輸出為 True。
為了解決這個問題,我們將遵循以下步驟:
- length := 字串的長度
- forward := 指向字串的第一個字元
- reverse := 指向字串的最後一個字元
- 當 reverse 的位置 >= forward 的位置時,執行以下操作:
- 如果 reverse 指向的字元與 forward 指向的字元相同,則:
- forward 加 1,reverse 減 1
- 否則:
- 退出迴圈
- 如果 reverse 指向的字元與 forward 指向的字元相同,則:
- 如果 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
廣告