用c语言数组编写程序,判断以字符串是否是回文串, 回文串是顺读和逆读都是一样的字符串 样例 显示:请输入字符串: 输入:12321 输出:12321是回文。
时间: 2024-12-13 09:28:56 浏览: 19
在 C 语言中,我们可以使用数组存储字符串,然后逐个比较字符以确定它是否是回文串。以下是一个简单的程序示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
int start = 0, end = len - 1;
// 检查字符串长度是否小于2,因为单个字符也是回文
while (start < end) {
if (str[start] != str[end]) {
return 0; // 非回文
}
start++;
end--;
}
return 1; // 回文
}
int main() {
char input[100];
// 从键盘输入字符串
printf("请输入字符串:");
fgets(input, sizeof(input), stdin); // 使用fgets防止换行符被当作字符
// 去掉字符串末尾的换行符
input[strcspn(input, "\n")] = '\0';
// 判断并输出结果
if (isPalindrome(input)) {
printf("%s是回文。\n", input);
} else {
printf("%s不是回文。\n", input);
}
return 0;
}
```
这个程序首先定义了一个函数 `isPalindrome`,它接受一个字符数组作为参数,使用两个指针 `start` 和 `end` 分别指向字符串的开始和结束位置。然后,它们同时向中间移动,比较对应位置的字符。如果有任何一个字符不同,则返回 0,表示不是回文;否则当 `start` 超过 `end` 时,返回 1,表示是回文。
在主函数 `main` 中,我们先从键盘接收字符串,然后调用 `isPalindrome` 函数判断并输出结果。
阅读全文