文字列が回文であるかどうかを判定するためのC言語
文字列が回文文字列であるということは、左から右に読んでも右から左に読んでも同じであるということを意味します。2つのポインタを使用することができ、1つは文字列の先頭を指し、もう1つは文字列の末尾を指します。指し示された2つの文字が同じかどうかを比較し、同じでない場合、文字列は回文ではありません。同じ場合、両方のポインタを中央に移動させ、比較を続けます。両方のポインタが出会ったとき、文字列全体が比較され、異なる文字が現れなかったことを示し、つまり文字列は回文であるということになります。
C言語で文字列が回文であるかどうかを判定するコードが以下に示されています:
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int length = strlen(str);
int i, j;
for (i = 0, j = length - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
return 0; // 不是回文字符串
}
}
return 1; // 是回文字符串
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
Example input:
请输入一个字符串:level
出力例:
level 是回文字符串
例を挙げる:
请输入一个字符串:hello
例を示します。
hello 不是回文字符串