如何将字符数组转换为整数数组?现有转换代码运行失败求原因
你的代码存在两处典型问题:
- 循环变量未初始化
两段代码的for循环中都仅声明了int i,未给i赋初始值0。未初始化的局部int变量值是随机的垃圾值,大概率远大于你定义的size,循环不会按预期执行,integerarray自然不会被正确赋值。 - 字符转整数逻辑不符合需求(仅适用于需要转字面数字的场景)
如果你要实现的是把字符形式的数字'0'~'9'转换为对应的整数0~9,直接赋值的逻辑是错误的:char类型存储的是字符对应的ASCII编码值,比如'0'的ASCII值为48,直接赋值给int变量得到的是48而非0,需要减去'0'的ASCII偏移量才能得到对应数字值。
修复后的参考代码:
// 若需要转字面数字 for(int i = 0; i < size; i++) { integerarray[i] = characterarray[i] - '0'; } // 若仅需要做char到int的类型转换,不需要转换字面数字 for(int i = 0; i < size; i++) { integerarray[i] = characterarray[i]; }
内容的提问来源于stack exchange,提问作者David Lopez
相关产品推荐
相关产品推荐

