函数不返回默认值C
Function not returning default value C++
此代码在调用这些返回时将返回1或0的值,但是如果返回2的默认返回值为2,则不会返回它。我确定这是我缺少的小东西,但我无法弄清楚。
int comp(string a, string b){
char x;
char y;
int i = 1;
int len;
len = a.length();
if(b.length() < (unsigned)len){
len = b.length();
}
len++;
while(i!=len){
x = a.at(i);
y = b.at(i);
if(getNum(x) < getNum(y)){
return 1;
}
else if (getNum(x) > getNum(y)){
return 0;
}
i++;
}
return 2;
}
解决方案:
i=0;
在while循环的顶部删除以下代码
len++;
您实际上在那里得到例外。因为在上次运行中,您的indexoutofbound异常。
如果您的字符串为" Hello",则长度为5,这意味着您的索引为0,1,2,3,4。
h e l l o
0 1 2 3 4
使用您的LEN ,它将长度提高到6。在最后一轮(5&lt; 6)的最后一轮中,您正在访问不存在的5的索引
希望它有帮助
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 具有默认值的引用获取函数
- 当给定默认值时,为什么此模板参数推导失败
- 无法按cpp中的值返回矢量
- 从具有默认值的部分指定模板类继承时发生SWIG错误,具有不带默认值的正向声明
- 格式化浮点值:返回默认值
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 如何将数组部分初始化为某个默认值?
- 按值 C++ 返回时进行双倍移动
- 编译器警告:执行到达值返回函数的末尾而不返回值
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- 创建一个包含 c++ 默认值的环境文件
- C++(和 ROS) - 包含与前向声明引用,设置默认值和类型定义
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- Switch 语句(字符串)一直选择默认值,除非其为零
- 函数不返回默认值
- 函数不返回默认值C
- C 程序返回默认值0
- 为什么C++未指定 return 语句时不默认构造返回值?
- GMock -使用ON_CALL返回重载方法的默认值