C++将字符串变为数字

将字符串变为数字

简单粗暴法

如果是"123"这种的,大概只要直接利用数字的ASII码来相减就可以了

string str = "123";
int num = 0;
for(auto &s:str){
     
	num  = num*10 + s-'0';
}

遇到带有符号的

但是"-100"这种,怎么直接换为数字?

用atoi来将字符数组转换为数字,atoi这个函数可以pass掉那些空格" ",并且可以加号和负号一同变为数字。
C++将字符串变为数字_第1张图片

string str = "-100";
int num = atoi(str); // 这样是不行的,因为atoi不支持直接把c++的字符串改为数字,只能先变为字符数组才行

正确做法,通过c_str将string变为字符数组,再用atoi来变为数字

string str = "-100";
int num = atoi(str.c_str());

你可能感兴趣的:(C++,Learning)