用C++编写程序,判断给定字符串是否为回文(回文指正读和逆读都一样的字符串

2024-12-01 19:24:49
推荐回答(5个)
回答1:

是说回族文字吧?如果是这样的话,你的这个判断标准应该是有问题,需要查询各种字符集的范围,根据这个字符集的范围来做出判断才是正确的做法。
如果你的说的判断方法是正确的话,是写个简单的函数检查输入字符串是否满足你的要求就可以了。

回答2:

printf("请输入一个字符串");
char in[];
int len = sizeof (in);
gets(in);
for(int i=0;i {
if(in[i]!=in[len-i]) //符数组遍历并且头尾比较 ,不相等
printf("输入的字符串不是回文");
}

回答3:

把字符串拆分两部分 比如7个字符 分4组比较 第一个和最后一个 第二个和倒数第二个

回答4:

#include
#include
#include

void main()
{
char *test = "if i had a hifi";
char *modify = NULL;
char *pOrg = NULL;
int len = 0;

len = strlen(test);

modify = (char *)malloc(len + 1);
if(modify != NULL)
{
memset(modify, 0, len + 1);
pOrg = modify;
}

while(*test)
{
if(*test != 0x20)
{
*modify++ = *test;
}
// printf("test:%c\n", *test);
// printf("modify:%c\n", *modify);
test++;
}

printf("modify:%s\n", pOrg);

}
貌似有个指针问题的,记不得了

回答5:

/****************************************
*函数名:f
*类属 :全局函数
*参数 :s 以0结束的字符串
*返回值:1,0
*功能 :如果s是对称的回访串,返回1,不是则返回0
******************************************/
int f(char* s)
{
if(NULL == s)return 0;
char *head=s;//指向第一个字符
char *tail=s+strlen(s)-1;//指向最后一个字符
while(true)
{
if(head >= tail)return 1;
if(*head == *tail)
{
head++;
tail--;
}
else
{
return 0;
}

}
}