编写c语言程序判断一个字符列是否是回文
时间: 2024-02-22 21:59:10 浏览: 81
可以使用双指针法来判断一个字符列是否是回文。具体思路是从头尾两端同时向中间扫描,每次比较两端的字符是否相等,若不相等,则不是回文。以下是一个示例的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *s) {
int len = strlen(s);
int i = 0, j = len - 1;
while (i < j) {
if (s[i] != s[j]) {
return 0; // 不是回文
}
i++;
j--;
}
return 1; // 是回文
}
int main() {
char s[100];
printf("请输入一个字符串:");
scanf("%s", s);
if (isPalindrome(s)) {
printf("%s 是回文\n", s);
} else {
printf("%s 不是回文\n", s);
}
return 0;
}
```
运行程序后,输入一个字符串,程序会输出该字符串是否是回文。
相关问题
编写c语言程序判断一个字符列是否是回文,要求:字符序列个数n可由用户自定义,可连续测试任意多个字符序列,由用户决定退出,字符序列由用户从键盘输入
好的,以下是满足您要求的 C 语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[100];
int len, i, j, flag;
while (1) {
printf("请输入一个字符串(最多100个字符),输入-1退出:\n");
scanf("%s", str);
if (strcmp(str, "-1") == 0) {
break;
}
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("%s 是回文。\n", str);
} else {
printf("%s 不是回文。\n", str);
}
}
return 0;
}
```
程序可以连续测试任意多个字符序列,当输入 -1 时退出,每次输入的字符串最长为 100 个字符。程序使用了一个标志变量 flag 来记录字符序列是否为回文,然后通过比较字符序列首尾两端的字符来进行判断。
编写C语言程序判断输入字符串是否是回文
以下是一个简单的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; i++)
{
if(str[i] != str[len - 1 - i])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s 不是回文字符串\n", str);
}
else
{
printf("%s 是回文字符串\n", str);
}
return 0;
}
```
该程序首先要求用户输入一个字符串,然后使用 strlen 函数获取字符串的长度,接着使用 for 循环遍历字符串,判断字符串是否是回文。如果字符串是回文,则输出“是回文字符串”,否则输出“不是回文字符串”。
阅读全文