c语言输入一行字符串,判断其是否是回文字符串,规则:只判断字母和数字,忽略大小写
时间: 2023-11-02 12:04:54 浏览: 164
判断一个字符串是否是回文字符串.c
以下是一个简单的 C 语言程序,可以实现输入一行字符串,判断其是否是回文字符串的功能,同时忽略大小写,只判断字母和数字:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_LENGTH 100
int main() {
char str[MAX_LENGTH];
int len, i, j;
int is_palindrome = 1;
// 读入一行字符串
printf("请输入一行字符串:\n");
fgets(str, MAX_LENGTH, stdin);
// 取得字符串长度
len = strlen(str);
// 检查字符是否相同
for (i = 0, j = len - 1; i < j; i++, j--) {
// 忽略非字母和数字的字符
while (!isalnum(str[i]) && i < j) i++;
while (!isalnum(str[j]) && i < j) j--;
// 比较字符,忽略大小写
if (tolower(str[i]) != tolower(str[j])) {
is_palindrome = 0;
break;
}
}
// 输出结果
if (is_palindrome) {
printf("是回文字符串!\n");
} else {
printf("不是回文字符串!\n");
}
return 0;
}
```
程序首先读入一行字符串,然后通过一个 for 循环,逐个比较字符是否相同。在比较之前,会先忽略非字母和数字的字符,并且在比较时会忽略大小写。如果发现不同的字符,就说明不是回文字符串,程序会输出“不是回文字符串!”;否则,说明是回文字符串,程序会输出“是回文字符串!”
阅读全文