为了账号安全,请及时绑定邮箱和手机立即绑定

新人求助 大神帮看一下问题在哪?15.16.17行报错

新人求助 大神帮看一下问题在哪?15.16.17行报错

C++
蒙麵女俠 2016-09-27 15:06:09
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

虽然你看到编译器在那三行报错,其实错误还有很多。 我先列出能找到的错误吧:

  • 代码前面你声明了strcmp函数,后面你定义了它,但你在定义时少写了返回类型int。

  • 在strcmp函数体里那三个if语句中,你是打算递归调用strcmp吗?  可是你把参数写成了(const char *a, const char *b)。 调用函数时应该在括号中写传入的实参,你却又把形参声明一遍,这写法不合语法,所以在这里报错。

  • 如前一个回答所说,在这些if语句中 ret == 1; 是判断语句,并不是赋值。 你应该使用单个=来为ret赋值。

  • strcmp这个函数是做什么用的?  看名字似乎你是想实现C函数库中的比较字符串函数,不过你这样写完全实现不了这个功能。 递归调用的用法错了,你没有设置递归截止条件,所以即便你将递归调用的语法写对,这个strcmp函数会无限递归。 你应该好好整理思路,重写这个函数的逻辑。

  • C++标准库的头文件不带 .h 结尾,所以一开始应该写成 #include <iostream> 这样。

  • 你代码中并没有用到C++的string头文件,为什么要include它?

  • 在main函数中,你想用str1和str2来作为字符串,但是你却将它们声明成了char类型,这只能表示"单个"字符。 后面你将str1、str2取地址后传入strcmp函数,这样strcmp函数确实接收的是指针类型,所以编译器没有报错,但是完全不合你原本的逻辑。

查看完整回答
反对 回复 2016-09-29
?
慕仙1118221

TA贡献5条经验 获得超0个赞

错误1:ret==1是判断语句,不是赋值语句

错误2:比较字符串应该用string类型的字符串,而不是char

错误3:你自己定义的函数使用了库函数strcmp,这是错误的

查看完整回答
反对 回复 2016-09-29
?
月落乌啼落日圆

TA贡献20条经验 获得超9个赞

ret==1,ret==-1,ret==0是判断语句,返回值是bool类型,并不是赋值语句,而且你的ret在函数中并没有声明,你的代码有点莫名其妙,有点难懂。

查看完整回答
反对 回复 2016-09-27
  • 3 回答
  • 0 关注
  • 1557 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信