c语言非递归判断字符串是不是回文
时间: 2023-07-26 16:39:29 浏览: 60
下面是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 == 1) {
printf("%s 不是回文字符串\n", str);
} else {
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
这个程序首先读入一个字符串,然后计算字符串的长度。接着,使用一个循环来判断字符串是否是回文。在循环中,我们从字符串的两端开始比较字符,如果发现不相同的字符,则将 `flag` 标记为 `1`,表示这个字符串不是回文。如果循环结束后 `flag` 的值仍然是 `0`,则表示这个字符串是回文。
相关问题
c语言判断多组字符串是否回文
以下是一个用C语言判断多组字符串是否回文的例子:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
int i = 0, k = len - 1;
while (k > i) {
if (str[i++] ! str[k--]) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("Enter the number of strings: ");
scanf("%d", &num);
char str[20];
for (int i = 0; i < num; i++) {
printf("Enter a string: ");
scanf("%s", str);
if (isPalindrome(str)) {
printf("It is a palindrome\n");
} else {
printf("It is not a palindrome\n");
}
}
return 0;
}
```
c语言不用指针判断字符串回文
可以使用数组来判断字符串是否为回文。具体方法是,先统计字符串的长度,然后定义两个指针,一个指向字符串的首部,一个指向字符串的尾部,然后进行比较。如果两个指针所指向的字符相等,则继续比较下一个字符,直到两个指针相遇或者发现不相等的字符为止。如果两个指针相遇,则说明该字符串是回文的,否则不是回文的。
以下是代码示例:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int len, i, j;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < j; i++, j--)
{
if (str[i] != str[j])
{
printf("%s 不是回文字符串\n", str);
return 0;
}
}
printf("%s 是回文字符串\n", str);
return 0;
}
```