判断输入的一个字符串是否为回文串,若是输出“Yes”,否则输出“No”。 编写一个函数,其功能为判断输入的字符串是否为回文,若是则返回...

作者&投稿:艾言 (若有异议请与网页底部的电邮联系)

错误原因:

1)C语言中变量的定义属于声明,需要写在一个函数的开始部分。

2)把一个字符串中的字符逆序取出赋值给另一个字符数组时,记得末尾加上空字符。

参考代码如下,希望能帮到您!

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    char str[100];

int length;

char str1[100];

int a=0;

int i;

    gets(str);

    //int length;

    length=strlen(str);

    //char str1[100];

    //int a;

   // for(int i=0; i<length; ++i)

/*

for(i=0; i<length; ++i) 

{

        for (a=length-2; a>=0; --a)

{

            str1[i]=str[a];

        }

    }*/

for(i=length-1; i>=0; --i) 

{

str1[a]=str[i];

a++;

    }

str1[a]=0;

    if(strcmp(str,str1)==0) 

{

        printf("Yes
");

    }

    else 

printf("No
");

    return 0;

}




楼主你忘记加字符串类函数的头文件#include <string.h>,所以strlen,strcmp都是无法使用的,

 

而且代码也有些问题,无法得出正确的结果,我帮你修改了一下,你好好看看理解一下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{

    char str[100];

    gets(str);

    const int length = strlen(str);

    char str1[100];
 

    for (int i = length; i > 0; --i)
    {
  str1[length - i] = str[i - 1];
  
    }
 str1[length] = '\0';
    if (strcmp(str,str1) == 0)
    {

        printf("Yes");

    }

    else printf("No");

    return 0;

}


献上代码
#include <bits/stdc++.h>
using namespace std;
string a;
int len=0, t=1, i=0;
int main()
{
getline(cin, a);
len = a.size();
for(i=0;i<len/2;i++)
if(a[i]!=a[len-1-i])
{
t=0;
break;
}
if(t) cout<<"Yes";
else cout<<"No";
return 0;
}

编写一个程序,判断输入的一个字符串是否是回文。若是,则输出YES,否则,输出No~

#include
using namespace std;

int main()
{
char *str = new char[255];
cin>>str;
cout<<str;
char *head=str;
char *tail=NULL;
while(*(str++)!=0)
{
tail = str;
}
tail--;
while(tail<=head)
{
if(*tail!=*head)
{
cout<<"不是回文数 "<<endl;
system("pause");
return 0;
}
else
{
tail--;
head++;
}
}
cout<<"是回文数"<<endl;
system("pause");
return 0;
}

#include
#include

#define IS_PALINDROME 1
#define IS_NOT_PALINDROME 0
#define STR_YES "yes"
#define STR_NO "no"
#define MAX_SIZE 80

int isPalindrome(char str[]);

int main()
{
char str[MAX_SIZE + 1];
printf("请输入一个字符串:
");

/* 获取用户输入的字符串 */
gets(str);

/* 判断是否回文并输出相应信息 */
if (isPalindrome(str) == IS_PALINDROME)
{
printf(STR_YES);
}
else
{
printf(STR_NO);
}

return 0;
}

/*
判断给定字符串是否为回文
str——待判断的字符串
如果str是回文,返回1;否则返回0
*/
int isPalindrome(char str[])
{
int length = 0; /* 字符串长度 */
int i = 0;

/*
如果字符串长度为0或负值,则认为它不是回文;
否则,将首尾对应的字符进行比较:
——如果有任意一组对应的字符不相等,则认为它不是回文;
——否则认为是回文.
*/
if ((length = strlen(str)) <= 0)
{
return IS_NOT_PALINDROME;
}
else
{
for (i = 0; i < length / 2; i++)
{
if (str[i] != str[length - 1 - i])
{
return IS_NOT_PALINDROME;
}
}
}

return IS_PALINDROME;
}

c语言编程题 输入一字符串,判断该字符串是否为回文。
答:int main(){ char a[100];int i=0,j=0;printf("请输入字符串:\n");gets(a);while(a[i]!='\0')i++;i--;for(;j<=i;i--,j++){ if(a[i]!=a[j]){ break;} } if(j<=i){ printf("不是回文串\n",a);} else { printf("是回文串\n",a);} system("pause");re...

判断回文,输入一段字符串,判断是否回文
答:判断回文,输入一段字符串,判断是否回文如下:判断一个字符串是否回文,可以先比较第一个字符和最后一个字符是否相同,不同则不是回文,相同则比较第二个和倒数第二个,以此类推,直到比较到中间两个(字符串长为偶数)或中间一个(字符串长为奇数)时,如果仍相同,则为回文。回文字符串是什么意思:回文...

输入一个字符串,判断是否为回文
答:} return 1;//到相遇后一直相同,是回文。} int main(){ char s[100];scanf("%s",s);//输入字符串。if(huiwen(s))//判断是否回文并输出结果。printf("%s是回文字符串\n",s);else printf("%s不是回文字符串\n",s);return 0;} ...

编程实现判断一个字符串是否是“回文串”。所谓“回文串”是指一个...
答:所谓“回文串”是指一个字符串的第一位与最后一位相同,第二位 编程实现判断一个字符串是否是“回文串”。所谓“回文串”是指一个字符串的第一位与最后一位相同,第二位与倒数第二位相同。例如:“159951”、“19891”是回文串,而“2001”不是。要... 编程实现判断一个字符串是否是“回文串”。所谓“回文...

写一个算法,用以判断输入字符串是否为回文
答:/*函数功能:判断字符串是否为回文串*/ int isPalindrome(char str[]){ /*把数组元素前后对应比较,即第一个元素与最后一个元素比较是否相等,依此类推*/ if(i>=elementSize-i-1)//说明是回文串 return 1;else if(str[i]==str[elementSize-i-1]){ i++;//i为全局静态变量 isPalindrome...

【题目5-6】编程判断输入的一串字符串是否为“回文”,所谓“回文”是指...
答:int isPalindrome(char *const str){ if(str) { if(strlen(str) == 1 || strlen(str) == 0)//长度是1或者0的是回文 { return 1; } char *p = str, *q = p + strlen(str) - 1; while(*p == *q && p < q) { p++; q--; } ...

c语言编程:判定一个字符是否是回文串(回文串是指从开头读和从末尾读...
答:1、首先,在C语言软件中,定义多个整型变量,保存程序中所需操作的数值。2、定义两个数组,保存输入的字符串和最长回文。3、输入字符串,保存在变量a中。计算字符串的长度,设置变量k和max的初值。4、接着,用循环语句实现查找回文,以及最长回文的判断。5、用if语句判断回文是否偶数,如果条件成立执行...

从键盘读入一个字符串,判断其是否为回文.(C语言)
答:从键盘读入一个字符串,判断其是否为回文. 字符串的实际长度最好调用strlen()函数来进行计算,使用系统提供的字符串函数要注意包含头文件string.h,建议函数原形为int Judge(char s[]),若不是回文返回0,是回文则返回1.main()函数中定义一个字符数组并输入值,将... 展开 borrow...

如何判断一个字符串是否是回文
答:以下是C语言实现判断回文字符串的代码。include<stdio.h>#include<string.h>int main(void){ char s[30]; int b=0; //1表示不是回文字符串 puts("请输入一个字符串:"); scanf("%s",s); for(int i=0;i<strlen(s)/2;i++) if(s[i]!=s[strlen(s)-i-1]) ...

c++ 判断一个字符串是否是回文 程序怎么写
答:【思路解析】所谓的回文字符串就是正着念和倒着念是一样的字符串,比如:ABA或ABBA都是回文字符串。判断回文字符串的办法就是成对比较,就是把字符串的第一个字符和倒数第一个字符比较,把第二个字符和倒数第二个比较……,以此类推。所以要写一个判断字符串是否回文的函数要先算出字符串S的字符...