C++,编写函数,利用指针判断一个字符串是否是回文。所谓回文就是顺读和倒读都是一样的。如eye,l

C++,编写函数,利用指针判断一个字符串是否是回文。所谓回文就是顺读和倒读都是一样的。如eye,level等... C++,编写函数,利用指针判断一个字符串是否是回文。所谓回文就是顺读和倒读都是一样的。如eye,level等 展开
 我来答
百度网友8036dfc
2017-07-11 · TA获得超过164个赞
知道答主
回答量:71
采纳率:100%
帮助的人:28.7万
展开全部
主要问题在于如何比较头部和尾部的字符是否相同。要获取字符串头部和尾部的字符,可以用数组下标来实现。只要我们知道字符串的长度,就可以用第一个字符和最后一个字符比较,第二个字符和倒数第二个比较,...,最后得出结果。字符串是以\n结束的,因此可以从字符串头部遍历字符串,求出字符串长度。这样,经过分析,我们只需要知道字符串头部就行了,所以函数只设置一个参数:指针。

函数体部分,首先要求出字符串长度,然后开始比较。可以直接用循环实现。具体代码见下面:

bool function(char* str)
{
bool flag=true;
int n=0;
//以下为求出字符串的长度
while(str[n])
{n++;}
//以下为比较前后字符串是否一样
for(int i=0;i<n/2;i++)
{
if(str[i]!=str[n-i-1])
{
//如果有一个字符不一样,后面的就不必再判断了,为假
flag=false;
break;
}
}
return flag;
}
wchyumo2011
2015-11-30 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2737万
展开全部
#include <iostream>
using namespace std;
int main()
{
char str[128], *p1, *p2;
while (gets(str)){
p1 = p2 = str;
while (*p2 != '\0')p2++;
p2--;
while (p1 < p2){
if (*p1 != *p2){
break;
}
p1++;
p2--;
}
if (p1 < p2){
printf("NO\n");
}
else {
printf("YES\n");
}
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式