c语言判断回文字符串
时间: 2023-08-04 13:05:25 浏览: 194
判断回文字符串的方法是将字符串正着读和反着读都能得到相同的结果,下面是一个使用C语言实现的判断回文字符串的例子:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for(i = 0; i < len; i++)
{
if(str[i] != str[len - i - 1])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s 不是回文字符串\n", str);
}
else
{
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
在这个程序中,我们先输入一个字符串,然后使用strlen函数计算出字符串的长度,接着使用for循环遍历字符串中的字符,如果发现字符串正着读和反着读得到的结果不同,就将flag设置为1,然后判断flag的值,输出相应的结果。
相关问题
C语言判断回文字符串
判断回文字符串的C语言代码如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char a[100] = {0};
gets(a); //输入字符数组
int len = strlen(a)-1; //取得数组长度
int i = 0;
while (i < len) {
if (a[i] != a[len]) //从数组的两头向中间逐步判断是否相同
break; //如果不同则直接退出
i++;
len--;
}
puts(a);
if (i>=len) //i如果小于len则说明提前退出即不是回文数组
printf("Yes");
else
printf("No");
return 0;
}
```
用c语言判断回文字符串
判断回文字符串可以通过两个指针从字符串的两端同时向中间扫描来实现。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
char *left = str;
char *right = str + len - 1;
while (left < right) {
if (*left != *right) {
return 0; // 不是回文串
}
left++;
right--;
}
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 函数用于判断一个字符串是否为回文串,其原理是使用两个指针 left 和 right 分别指向字符串的首尾,然后每次比较 left 和 right 指向的字符是否相等,如果不相等则不是回文串,直接返回 0;如果一直比较到 left >= right 时仍然相等,则说明是回文串,返回 1。
阅读全文