解决‘char‘ to ‘const char*‘

  最近有小伙伴来问到我一个问题,我觉得挺有意思的便记录下来~解决问题,换个思想,就是海阔天空,更是“山重水复疑无路,柳暗花明又一村”呀o(〃^▽^〃)o
  
代码报错: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
问题描述: 在C++中,想将字符串(该字符串都是数字)某个位置的数字转成 int 类型数字,是不是会想到用 stoi / atoi,当然按string的原理更适合的是用atoi,但是会出现上述的报错,如下例子:

#include<iostream>
#include<string.h>
int main(){
	string str = "1234567890987654321123456789";
	int sum = 0;
	while(!str.empty()){
		sum += atoi(str.back());	//这里会报错
		str.pop_back();
	}
	return 0
}

我们来看看原因,atoi的原型是:int atoi (const char * str)
在这里你可以看到 atoi 需要的是一个字符串文本,而不是单个字符
针对于数字的问题,我们可以对报错的代码修改如下:

sum += str.back() - '0';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ac君

在你们的鼓励下我会多多分享代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值