c语言判断回文字符串代码
时间: 2024-01-01 09:54:55 浏览: 98
好的,下面是判断回文字符串的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j;
int flag = 1;
printf("请输入字符串:");
scanf("%s", str);
for (i = 0, j = strlen(str) - 1; i < j; i++, j--)
{
if (str[i] != str[j])
{
flag = 0;
break;
}
}
if (flag)
printf("是回文字符串\n");
else
printf("不是回文字符串\n");
return 0;
}
```
这个代码先读入一个字符串,然后用两个指针 `i` 和 `j` 分别从字符串的两端开始向中间遍历,如果发现两个字符不相同,则说明这不是一个回文字符串,将 `flag` 变量设为 0 并跳出循环,否则就一直遍历到中间位置,此时 `flag` 仍然为 1,说明这是一个回文字符串。
相关问题
C语言判断回文字符串
判断回文字符串的C语言代码如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char a[100] = {0};
gets(a); //输入字符数组
int len = strlen(a)-1; //取得数组长度
int i = 0;
while (i < len) {
if (a[i] != a[len]) //从数组的两头向中间逐步判断是否相同
break; //如果不同则直接退出
i++;
len--;
}
puts(a);
if (i>=len) //i如果小于len则说明提前退出即不是回文数组
printf("Yes");
else
printf("No");
return 0;
}
```
c语言栈判断回文字符串代码
好的,我可以为您提供一个简单的C语言栈实现回文字符串判断的代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
typedef struct {
int top;
char data[MAX_LEN];
} Stack;
void push(Stack *s, char c) {
if (s->top < MAX_LEN) {
s->data[s->top++] = c;
}
}
char pop(Stack *s) {
if (s->top > 0) {
return s->data[--s->top];
}
return '\0';
}
int main() {
Stack s;
s.top = 0;
char str[MAX_LEN];
printf("Enter a string:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
push(&s, str[i]);
}
for (int i = 0; i < len; i++) {
if (str[i] != pop(&s)) {
printf("Not a palindrome\n");
return 0;
}
}
printf("Palindrome\n");
return 0;
}
```
该程序通过定义一个栈结构体,使用 push() 和 pop() 函数实现栈的操作,并利用栈来判断一个字符串是否为回文字符串。程序先将字符串中的字符倒序压入栈中,再从头到尾遍历字符串,每次取出栈顶字符匹配当前字符。如果匹配失败,则说明该字符串不是回文字符串。
阅读全文
相关推荐
















