c语言判断多组字符串是否回文
时间: 2023-12-25 14:28:53 浏览: 132
以下是一个用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语言判断一个字符串是不是回文字符串
以下是两种C语言判断一个字符串是否为回文字符串的方法:
方法一:
```c
#include <stdio.h>
#include <string.h>
int judge();
int main() {
int i;
i = judge();
if (i == 1) {
printf("该字符串是回文。\n");
} else if (i == 0) {
printf("该字符串不是回文。\n");
}
}
int judge() {
char a[50];
int length;
int i;
gets_s(a);
length = strlen(a);
for (i = 0; i < length/2; i++) {
if (a[i] != a[length - i - 1]) {
return 0;
} else {
return 1;
}
}
}
```
方法二:
```c
#include <stdio.h>
#include <string.h>
#define N 100
int main() {
char s[N];
int i=0,j;
printf("Input a String: \n");
//输入一个字符串赋值给s
gets(s);
//j的初始值为s字符串最后一个位置
j=strlen(s)-1;
//进行while判断i、j的位置和i、j位置的值的关系
while(i<=j&&s[i]==s[j]){
//每比较一次就i右移、j左移一位
i++;
j--;
}
//判断最终i和j的的位置
//根据i、j的位置最终是会互相超越的,所以如果i<=j说明存在对应位置不等的情况就是不是回文串
if (i<=j) {
printf("不是回文字符串\n");
} else{
printf("是回文字符串\n");
}
return 0;
}
```
c语言非递归判断字符串是不是回文
可以使用栈来判断字符串是否为回文。具体步骤如下:
1.定义一个栈和一个变量i,初始化i为0。
2.将字符串中的字符依次入栈,直到字符串结束。
3.从字符串开头开始遍历,每遍历到一个字符,就从栈中弹出一个字符,与当前字符比较。
4.如果两个字符不相等,则说明该字符串不是回文。
5.如果遍历完整个字符串后都没有出现不相等的情况,则说明该字符串是回文。
下面是具体的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main()
{
char str[MAX_SIZE];
int i, len, mid;
int top = 0;
char stack[MAX_SIZE];
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
mid = len / 2;
for (i = 0; i < mid; i++) {
stack[top++] = str[i];
}
if (len % 2 == 1) {
i = mid + 1;
} else {
i = mid;
}
while (i < len) {
if (stack[--top] != str[i]) {
printf("Not a Palindrome\n");
return 0;
}
i++;
}
printf("Palindrome\n");
return 0;
}
```
在上面的代码中,我们首先输入一个字符串,然后计算出字符串的长度和中间位置。接下来,我们使用栈将字符串的前半部分依次入栈。然后,我们从字符串的中间位置开始遍历,每遍历到一个字符,就从栈中弹出一个字符,与当前字符比较。如果两个字符不相等,则说明该字符串不是回文。如果遍历完整个字符串后都没有出现不相等的情况,则说明该字符串是回文。
阅读全文