如何将两个char类型的数字拼接并转换为int类型?
解决方法
方法一:数学运算(固定位数最直接)
既然你已经通过ctoi拿到了单个数字的int值,直接用数学逻辑拼接就行:第一个数字乘以10(对应十位权重)加上第二个数字,代码示例:
int first_digit = ctoi(line[1]); int second_digit = ctoi(line[2]); int combined_num = first_digit * 10 + second_digit; // 结果就是41
如果是更多位数的数字,比如三位,逻辑同理:digit1 * 100 + digit2 * 10 + digit3,以此类推,按位数的权重累加即可。
方法二:拼接字符串后转整数(适合可变位数)
如果不确定结尾数字的个数,或者想统一处理任意长度的数字字符,可以先把这些字符拼成完整字符串,再转成int:
// 以两个数字为例,构造字符串时要预留结束符位置 char num_str[3]; num_str[0] = line[1]; num_str[1] = line[2]; num_str[2] = '\0'; int combined_num = atoi(num_str); // atoi会把"41"直接转为int类型的41
如果用C++,也可以用std::stoi完成字符串转int的操作,逻辑一致。
内容的提问来源于stack exchange,提问作者Infiniteon
相关产品推荐
相关产品推荐

