将标准::字符串转换为整数

Convert std::string to integer

本文关键字:整数 转换 字符串 标准      更新时间:2023-10-16

我正在尝试将存储在std::vector中的std::string转换为整数,并将其作为参数传递给函数。

这是我代码的简化版本:

vector <string> record;
functiontest(atoi(record[i].c_str));

我的错误如下:

error: argument of type ‘const char* (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::)()const’ does not match ‘const char*’

我该怎么做?

with C++11:

int value = std::stoi(record[i]);
record[i].c_str

record[i].c_str()

您实际上可以从错误消息中得到这一点:该函数需要const char*,但您提供的参数为 const char* (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::)()const 类型为,该参数是指向返回const char*且不带参数的类std::basic_string<char, std::char_traits<char>, std::allocator<char> >的成员函数的指针。

使用标准库中的字符串流。它比C更干净,更C++。

int i3;
std::stringstream(record[i]) >> i3; 
#include <boost/lexical_cast.hpp>
functiontest(boost::lexical_cast<int>(record[i]));