C++ 字符串转数字的几种方法
在写CSP第三题的过程中发现过几次这种需求,通常是输入的是一个连续的字符串,需要从中提取需要的int
类型的数据,这里就涉及到了string to int
的转化。
看了几份代码,现在整理出以下几个
- 调用
stoi
方法:
// str to int | 其中key 和 value是提取出的只含数字的字符串
int k = stoi(key);
int v = stoi(value);
该方法简单直接,但是看了很多博客好像对这个方法的参数有点不太统一,我也没有细看
- 利用
stringstream
流:可以撰写如下一个函数
int to_i(string s) //string转int等都可
{
stringstream ss;
ss << s;
int x;
ss >> x;
return x;
}
- 笨方法吧,是我最初的想法,在之前的代码中也出现过。点亮数字人生
int string_to_int(string str)
{
int index = 0;
int len = str.size() - 1; //前驱节点的位数
for(int j = 1;j < str.size() && len;j ++){
len --;
int add = ((str[j] - 48) * int(pow(10, len) + 0.5));
index += add;
}
return index;
}