我学会了一个可以将字符串转换为整数的辅助函数:
int string_to_int(string s)
{
istringstream instr(s);
int n;
instr>>n;
return n;
}
它提到参数s不能是c-str字符串,为什么会这样?
答案 0 :(得分:0)
但你可以传递一个C风格的字符串。
原因是std::string
constructor可以隐式接受CharT*
(Char类型,在本例中为char
)作为参数。因此,类似下面的内容可行:
#include <iostream>
#include <sstream>
using namespace std;
int string_to_int(string s)
{
istringstream instr(s);
int n;
instr>>n;
return n;
}
int main()
{
const char* test = "12345";
std::cout << string_to_int(test) << "\n"; // Outputs 12345
std::cout << string_to_int("122") << "\n"; // Outputs 122
}