两个指针判别字符串是否是回文字符串

 我来答
何霸王
2018-06-25 · TA获得超过262个赞
知道小有建树答主
回答量:280
采纳率:81%
帮助的人:197万
展开全部
#include <stdio.h>
#include <string.h>
#define N 100
int fun(char *p) //传入字符串的首地址
{
char *q;
q = p; //使p和q同时指向字符串的首地址
while(*q) //使q指向字符串的结束标志''
q++;
q--; //使q指向字符串的最后一个字符,而不是结束标志
while(p<q)
{
if(*p!=*q) //判断首尾字符是否相等,如果不相等则说明不是回文串
return 0;
p++;//p和q同时向字符串的中间移动
q--;
}
return 1;
}
int main(void)
{
char ch[N];
printf("请输入一个字符串:");
gets(ch); //使用gets可以接受带空格的字符串
if(fun(ch))
printf("是回文串\n");
else
printf("不是回文串\n");
return 0;
}
C++版
————————————————
#include <iostream>
#include <string>
using namespace std;

bool isRstring(const char *s);

int main()
{
string astring;
cin >> astring;
if( isRstring(astring.c_str()) )
cout << "yes" << endl;
else
cout << "no" << endl;
return 0;
}

bool isRstring(const char *s)
{
int length = strlen(s);
for(int i = 0; i < length/2 + 1; i++)
{
if( s[i] != s[length-1-i] ) return false;
}

return true;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式