判断字符串是否为回文c语言
时间: 2023-12-06 09:36:18 浏览: 141
以下是判断字符串是否为回文的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("Please input string:");
gets(str);
len = strlen(str);
for(i=0;i<len/2;i++)
{
if(str[i]!=str[len-i-1])
{
flag = 1;
break;
}
}
if(flag)
printf("NO\n"); else
printf("YES\n");
return 0;
}
```
相关问题
判断字符串是否为回文的C语言代码
以下是一个用C语言编写的判断字符串是否为回文的代码示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isPalindrome(char str[]) {
int left = 0;
int right = strlen(str) - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
char str[100];
printf("请输入一个字符串: ");
scanf("%s", str);
if (isPalindrome(str)) {
printf("\"%s\" 是回文\n", str);
} else {
printf("\"%s\" 不是回文\n", str);
}
return 0;
}
```
这段代码的工作原理如下:
1. 定义了一个名为 `isPalindrome` 的函数,它接受一个字符串作为参数。
2. 使用两个指针 `left` 和 `right` 分别指向字符串的开始和结束。
3. 在一个循环中,我们比较这两个位置的字符:
- 如果字符不相同,函数返回 `false`。
- 如果字符相同,我们移动 `left` 指针向前移动,`right` 指针向后移动。
4. 如果整个字符串都被检查完毕且所有对应的字符都相同,则函数返回 `true`。
5. 在 `main` 函数中,我们从用户那里获取输入字符串,然后调用 `isPalindrome` 函数来判断它是否为回文。
这个程序可以处理任何长度的字符串,只要它不超过 99 个字符(因为我们声明的数组大小是 100)。
用栈判断给定的字符串是否是回文 c语言版
可以使用栈来判断一个给定的字符串是否是回文。具体方法如下:
1. 首先创建一个栈,将字符串中的每个字符依次压入栈中。
2. 然后从字符串的第一个字符开始遍历,每次取出栈顶的字符进行比较。如果相同,则继续比较下一个字符;如果不同,则说明该字符串不是回文。
3. 当栈为空时,说明该字符串是回文。
下面是用C语言实现的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct {
char data[MAX_SIZE];
int top;
} Stack;
void InitStack(Stack* s) {
s->top = -1;
}
void Push(Stack* s, char c) {
if (s->top >= MAX_SIZE - 1) {
printf("Stack overflow!\n");
return;
}
s->top++;
s->data[s->top] = c;
}
char Pop(Stack* s) {
if (s->top == -1) {
printf("Stack underflow!\n");
return '\0';
}
char c = s->data[s->top];
s->top--;
return c;
}
int IsPalindrome(char* str) {
Stack s;
InitStack(&s);
int len = strlen(str);
for (int i = 0; i < len; i++) {
Push(&s, str[i]);
}
for (int i = 0; i < len; i++) {
if (Pop(&s) != str[i]) {
return 0;
}
}
return 1;
}
int main() {
char str[MAX_SIZE];
printf("Please enter a string: ");
scanf("%s", str);
if (IsPalindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
阅读全文
相关推荐













