用c语言数组数组和循环回文是从前向后和从后向前读起来都一样的,请编写一个函数,判断一个字符串是否为回文 提示:len=strlen(str); /*求字符串的长度*/
时间: 2024-02-12 16:04:43 浏览: 271
好的,我可以为您编写一个判断字符串是否为回文的函数,代码如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
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;
}
```
函数 `isPalindrome` 的参数为一个字符数组,返回值为一个整数,如果是回文则返回 1,否则返回 0。函数中先求出字符串的长度,然后使用循环依次比较第一个字符和最后一个字符、第二个字符和倒数第二个字符,以此类推,如果有不相等的字符,则不是回文,直接返回 0。如果循环结束后都没有返回,则说明是回文,返回 1。
在 `main` 函数中,先输入一个字符串,然后调用 `isPalindrome` 函数进行判断,并输出结果。
希望可以帮到您!
阅读全文