c语言判断字符串会不会回文
判断字符串是否是是回文的方法可使用双指针的思想,一个指针指向字符串的开头,一个指针指向字符串的末尾,然后逐渐比较两个指针指向的字符是否是相同,直到两个指针相遇还是找到不相同的字符。
下面是一个示例代码:
#include <stdio.h>
#include <string.h>
int isPalindrome(char* str) {
int len = strlen(str);
int start = 0;
int end = len - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0; // 不是回文
}
start++;
end--;
}
return 1; // 是回文
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文
");
} else {
printf("不是回文
");
}
return 0;
}
这段代码首先通过strlen
函数获得字符串的长度,然后使用两个指针start
和end
分别指向字符串的开头和末尾。在一个while
循环中,不断比较指针指向的字符是否是相同,如果发现区分的字符,则返回0表示不是回文;如果两个指针相遇,则表示全部字符串都比较终了,返回1表示是回文。最后在main
函数中调用isPalindrome
函数进行判断,并输出结果。
TOP