一道C++的题目,请帮忙解答一下几条语句

#include<iostream.h>boolfun(char*str)//请问这个bool函数究竟是怎么实现功能的,为什么看不懂??{intlen=0;for(;st... #include <iostream.h>

bool fun(char* str) //请问这个bool函数究竟是怎么实现功能的,为什么看不懂??
{
int len=0;
for(;str[len] != 0; len ++); //这里的for循环里一开始就是 ; 是什么意思呢?
len--;
for(int i=0; i<len; i++,len--)
{
if( str[i] != str[len] )
return 0;
}
return 1;
}

void main()
{
char str[1024];
cout<<"请输入一行文字"<<endl;
cin.getline(str,1024);
cout<<fun(str)<<endl;
return;
}
展开
 我来答
百度网友57796b9
2013-08-31 · TA获得超过373个赞
知道小有建树答主
回答量:226
采纳率:83%
帮助的人:101万
展开全部
//程序应该是判断输入字符串是不是对称
#include <iostream.h>

bool fun(char* str)    //请问这个bool函数究竟是怎么实现功能的,为什么看不懂??
{
    int len=0;
    for(;str[len] != '\0'; len ++); //这是是不是应该这样写
                              //for空循环,直到字符串结束符,最终得到字符串长度
    len--;        //此处是为了减去'\0'占用的一个长度
    for(int i=0; i<len; i++,len--)
    {
        if( str[i] != str[len] )//这个是判断字符串首位对称位置的字符是不是相等
            return 0;        //不相等返回0
    }
    return 1;
}

void main()
{
 char str[1024];
 cout<<"请输入一行文字"<<endl;
 cin.getline(str,1024);
 cout<<fun(str)<<endl;
 return;
}
追问
非常感谢,我还有一处不明白,就是 for(;str[len] != '\0'; len ++);  是不是可以换成 for(len=0;str[len] != '\0'; len ++);  我不太明白for中直接有; 的意思。
追答

完全可以,只不过前面一句

int len=0;//此处对len定义的同时已经初始化为0

所以for里面就不需要重复赋值为0了,如果前面定义未初始化,则for里面最好加上初始条件len=0,否则可能发生错误

cppqingyuan
2013-08-31 · 超过44用户采纳过TA的回答
知道答主
回答量:154
采纳率:0%
帮助的人:115万
展开全部
bool fun(char* str) //将数组传入函数,子函数不会重新分配空间建新数组,共用实参数组内存,所以传入指针,最好加一个参数(数组长度)

int len=0;
for(;str[len] != 0; len ++); //这里的for循环省略了,循环变量len的初始化,for中的表达式都可以省,但是;不能省
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chouchouNUDT
2013-08-31 · TA获得超过1707个赞
知道小有建树答主
回答量:2954
采纳率:50%
帮助的人:1159万
展开全部
呵呵,实际上是查找字符串中是否有重复的字母。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式