输入一个字符串,判断该字符串是否为回文字符串,c语言
时间: 2023-11-01 14:10:07 浏览: 67
以下是一个简单的 C 语言程序,用于判断一个字符串是否为回文字符串:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag = 1;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < len/2; i++, j--)
{
if (str[i] != str[j])
{
flag = 0;
break;
}
}
if (flag)
printf("%s is a palindrome\n", str);
else
printf("%s is not a palindrome\n", str);
return 0;
}
```
该程序首先使用 `scanf` 函数读取一个字符串,然后使用 `strlen` 函数获取字符串的长度。接下来,使用两个指针 `i` 和 `j` 分别从字符串的两端开始向中间遍历,判断每个字符是否相同。如果发现不同的字符,则将标志 `flag` 置为 0,表示字符串不是回文字符串。最后根据标志 `flag` 输出判断结果。
相关问题
输入一个字符串判断该字符串是否为回文用c语言写
以下是用C语言实现判断一个字符串是否为回文字符串的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag = 1;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for (i = 0, j = len - 1; i < len / 2; i++, j--)
{
if (str[i] != str[j])
{
flag = 0;
break;
}
}
if (flag)
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
```
c语言回文字符串判断
以下是两种C语言判断回文字符串的例子:
1.使用指针进行判断
```c
#include<stdio.h>
#include<string.h>
int main() {
char a[100];
char *p;
char *q;
gets(a);
for(p=a,q=a+strlen(a)-1;*p!='\0';q--,p++) {
if(*p!=*q) break;
}
if(p>q) printf("该字符串为回文字符串");
else printf("该字符串不是回文字符串");
return 0;
}
```
2.使用数组进行判断
```c
#include<stdio.h>
int main(void) {
int i,k;
char c[20];
printf("Enter a word:");
k=0;//字符串一次输出赋值。
while(1){
c[k]=getchar();//从键盘读取字符
if(c[k]=='\n')//如果输入回车赋值读取结束,开始进行下面的语段
break;
k++;//此时k为0+输入多少个字符串的值
}
i=0;//定义数组新变量
k=k-1;
while(c[k]==c[i])//让字符串从两边向里面依次比较
{
if(i==k) break;//比较到中间值while循环结束
i++;
k--;
}
if(i>=k)//如果比较到最中间的字符说明该字符串为回文
printf("It is a palindrome\n");
else
printf("It is not a palindrom\n");
return 0;
}
```
阅读全文