在 C++ 中从字符串更改为数字 [关闭]
Posted
技术标签:
【中文标题】在 C++ 中从字符串更改为数字 [关闭]【英文标题】:Change from string to number in C++ [closed] 【发布时间】:2014-03-31 21:05:19 【问题描述】:有时需要处理字符串。通常需要从字符串更改为数字,或者相反。在 Pascal 中,我使用“str(n,st);”和“val(st, n, c);”,通常。请写下你的方法,如何在 C++ 中做到这一点(如果可以,请指定库)。
【问题讨论】:
你做过研究吗?对于std::string
,可以使用stoi()
这个问题并没有显示出任何解决问题的努力,甚至在询问之前谷歌......
en.cppreference.com/w/cpp/header/string 在此处查找有关字符串相关方法的参考,您要查找的方法位于“数字转换”标题下。
***.com/q/273908/2157640 ***.com/q/4351371/2157640 ***.com/q/5528053/2157640 ***.com/q/1070497/2157640
【参考方案1】:
在 C++ 11 中有一组函数可以将 arithmetic types
的对象转换为 std::string
类型的对象
string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);
还有一组函数将std::string
类型的对象转换为arithmetic types
的对象:
int stoi(const string& str, size_t *idx = 0, int base = 10);
long stol(const string& str, size_t *idx = 0, int base = 10);
unsigned long stoul(const string& str, size_t *idx = 0, int base = 10);
long long stoll(const string& str, size_t *idx = 0, int base = 10);
unsigned long long stoull(const string& str, size_t *idx = 0, int base = 10);
float stof(const string& str, size_t *idx = 0);
double stod(const string& str, size_t *idx = 0);
long double stold(const string& str, size_t *idx = 0);
还有其他一些我没有在此处列出的执行 sich 转换的函数。例如,其中一些是处理字符数组的 C 函数。
【讨论】:
【参考方案2】:使用std::stoi
std::string example = "21";
int i = std::stoi(example);
查看此答案以获取更多信息 c++ parse int from string
【讨论】:
【参考方案3】:std::istringstream is("42");
int answer;
is >> answer;
std::ostringstream os;
os << 6*9;
std::string real_answer = os.str();
【讨论】:
【参考方案4】:两种解决方案:
解决方案 1:
string strNum = "12345";
int num = atoi(strNum.c_str());
cout<<num<<endl;
解决方案 2:
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
string strNum = "12345";
istringstream tempStr(strNum);
int num;
tempStr >> num;
cout<<num<<endl;
【讨论】:
以上是关于在 C++ 中从字符串更改为数字 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 puppeteer + Charles 中从本地主机更改为代理时得到 302