判断回文c语言字符串
时间: 2023-11-27 10:47:27 浏览: 229
以下是判断回文C语言字符串的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
flag = 1;
break;
}
}
if (flag) {
printf("%s 不是回文字符串\n", str);
} else {
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
代码思路如下:
1. 定义一个字符数组 `str` 存储输入的字符串。
2. 使用 `strlen()` 函数获取字符串的长度。
3. 使用 `for` 循环遍历字符串的前一半,判断对应位置的字符是否相同,如果不同则将 `flag` 标记为 1 并跳出循环。
4. 根据 `flag` 的值输出判断结果。
相关问题
判断回文c语言
判断回文字符串的方法是将字符串正反两个方向进行比较,如果两个方向的字符串相同,则该字符串为回文字符串。下面是一个用 C 语言实现判断回文字符串的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
flag = 1;
for(i = 0, j = len - 1; i < j; i++, j--)
{
if(str[i] != str[j])
{
flag = 0;
break;
}
}
if(flag)
printf("该字符串是回文字符串!");
else
printf("该字符串不是回文字符串!");
return 0;
}
```
该程序中使用了 gets() 函数读取输入的字符串,并使用 for 循环和字符串长度计算出字符串正反两个方向的字符进行比较。如果比较中发现不相同的字符,则不是回文字符串,标记 flag 置为 0,最后输出结果。
判断回文字符串C语言
以下是两种判断回文字符串的C语言代码:
1.使用数组实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for(i=0;i<len;i++)
{
if(str[i]!=str[len-i-1])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s is not a palindrome\n", str);
}
else
{
printf("%s is a palindrome\n", str);
}
return 0;
}
```
2.使用指针实现:
```c
#include <stdio.h>
#include <string.h>
bool palindrome(char *s)
{
int i = 0, ret;
while(*(s + i) != '\0')
{
i++;
}
i--;
int k = 0;
while(i > k)
{
if(s[i] != s[k])
{
break;
}
i--;
k++;
}
if(i <= k)
{
ret = 1;
}
else
{
ret = 0;
}
return ret;
}
int main()
{
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if(palindrome(str))
{
printf("%s is a palindrome\n", str);
}
else
{
printf("%s is not a palindrome\n", str);
}
return 0;
}
```
阅读全文