判断一个字符串是否为回文串
时间: 2023-11-15 13:02:00 浏览: 153
判断一个字符串是否回文
4星 · 用户满意度95%
判断一个字符串是否为回文串的方法有很多种,其中一种比较常见的方法是定义两个变量i和j,当i为首字符时,j为末字符,比较两者是否相同,不同则输出不是回文字符,相同则继续比较,直到i>j时,两者还相同,输出字符串为回文字符。另外一种方法是通过循环,比较其最前面和最后面的值是否相同,再比较次前和次后……若值相同,就计数一次;若不相同,就不记数。回文由于前后对应值都相同,计数会占总个数的1/2。通过比较计数个数是否占总个数的1/2,就能判断出是否是回文。
代码示例1:
```
#include <stdio.h>
#include <string.h>
int main() {
char a[1024];
int i, j;
gets(a); //从键盘中输出字符
j = strlen(a) - 1; //将字符串的长度-1之后赋值给j
for (i = 0; i < j; i++, j--) { //将字符从两侧开始逐渐对比是否相同
if (a[i] != a[j]) break; //不同则跳出循环
}
if (i >= j) printf("该字符串是回文字符\n"); //若相同则输出
else printf("该字符串不是回文字符\n"); //若不相同则输出
return 0;
}
```
代码示例2:
```
#include <stdio.h>
int main() {
char str[80];
int i, count = 0;
int t = 0;
gets(str); //输入
for (i = 0; str[i] != '\0'; i++) { //遇到字符串结束标志'\0'时停止计数
count++; //统计共有多少个字符
}
for (i = 0; i < count / 2; i++) { //比较总字符数1/2次
if (str[i] == str[count - 1 - i]) t++; //若相同,就计数一次
}
if (t == count / 2) printf("%s是回文\n", str); //若累计计数达到字符串长度的一半,就是回文
else printf("%s不是回文\n", str);
return 0;
}
```
阅读全文