设计回文判断程序,对输入的字符串进行回文判断

、设计回文判断程序,对输入的字符串进行回文判断要求:输入的字符串字数不限;构造栈;构造队列;使用栈和队列进行判断我人C语言还在基础学习阶段,上面的题目几乎是不懂,希望有高... 、设计回文判断程序,对输入的字符串进行回文判断
要求:输入的字符串字数不限 ;构造栈;构造队列; 使用栈
和队列进行判断
我人C语言还在基础学习阶段,上面的题目几乎是不懂,希望有高人指点
展开
 我来答
愚人陈
2009-04-21 · TA获得超过713个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:180万
展开全部
“构造栈;构造队列; 使用栈
和队列进行判断”这个我也不是太懂。
我在网上看到过回文,使用了好多复杂的函数,我都还没学过。

不过我自己写了一个,你看看,原理很简单。
用了.substr函数 for循环 getlin(提取一句话,遇回车终止)
是在C++里写的,不知道在C里能不能用。
<这里在C++的getline(cin,stringname函数有个bug(第一次从键盘getlin输入两个回车才能getlin,但是第二个回车会保存到下一次的getlin)所以循环getline时会出错> 我把循环去掉了。

//*************************************************************
//Palindrome Judgment program 回文判断程序 U6ex4 page235
//cin a sentence,cout its characters in reverse order
//and judgment whether the input line is a palindrome
//*************************************************************
#include<iostream>
#include<string>
using namespace std;

string sen;
string pal;//palindrome回文
int len,i,j;//len=length字符串的长度,i是for循环变量,j判断倒序与正序相同字符的个数
//如果它等于字符串总的长度,即为回文。
void main()
{
cout<<"please input a sentence\n";
getline(cin,sen);

cout<<"the reverse order is:\n";
len=sen.length();
j=0; //倒序与正序相同字符的个数,赋初值0

for(i=0;i<len;i++)
{
pal=sen.substr(len-i-1,1);
cout<<pal;

if(pal==sen.substr(i,1))
j++;
}

if(j==len)
cout<<endl<<"this sentence IS a palindrome\n";
else
cout<<endl<<"this sentence is NOT a palindrome\n";

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式