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

http://img.mukewang.com/57ea1a2e0001105b08540733.jpg


蒙麵女俠
浏览 1558回答 3
3回答

onemoo

虽然你看到编译器在那三行报错,其实错误还有很多。 我先列出能找到的错误吧:代码前面你声明了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函数确实接收的是指针类型,所以编译器没有报错,但是完全不合你原本的逻辑。

慕仙1118221

错误1:ret==1是判断语句,不是赋值语句错误2:比较字符串应该用string类型的字符串,而不是char错误3:你自己定义的函数使用了库函数strcmp,这是错误的

月落乌啼落日圆

ret==1,ret==-1,ret==0是判断语句,返回值是bool类型,并不是赋值语句,而且你的ret在函数中并没有声明,你的代码有点莫名其妙,有点难懂。
打开App,查看更多内容
随时随地看视频慕课网APP