我怎样才能将c ++ str转换为int?

时间:2013-02-05 19:09:40

标签: c++

  

可能重复:
  c++ converting string to int

我有用户输入9个数字。我需要将字符串数转换为int

string num;
int num_int, product[10];

cout << "enter numbers";
cin >> num;

for(int i =0; i<10; i++){
   product[i] = num[i] * 5; //I need the int value of num*5
}

5 个答案:

答案 0 :(得分:5)

为什么不立即阅读整数?

int num;
cin >> num;

答案 1 :(得分:4)

您不需要有两个变量。通常在C ++中即时转换,在 输入流,没有看到文本作为字符串。那么你 可以简单地写一下:

int num;
std::vector< int > product( 10 );

std::cout << "enter number: ";
std::cin >> num;

...

请注意,我已经更正了您将数组声明为的方式 好。您通常不会在C ++中使用int product[10];。 (而且你几乎从不在同一条线上定义两个变量, 即使语言允许它。)

答案 2 :(得分:2)

到目前为止转换为字符串并返回的最简单方法是使用转换函数。

 std::string s="56";
 int i=std::stoi(s);

http://en.cppreference.com/w/cpp/string/basic_string/stol

并返回

 int i=56;
 std::string s=std::to_string(i);

http://en.cppreference.com/w/cpp/string/basic_string/to_string

当然,如果您正在阅读输入,那么您也可以在那里进行输入

 int i;
 std::cin >> i;

答案 3 :(得分:1)

以下是完整的示例:

//library you need to include
    #include <sstream>
    int main()
    {
        char* str = "1234";
        std::stringstream s_str( str );
        int i;
        s_str >> i;
    }

答案 4 :(得分:1)

如果你绝对必须使用std::string(由于任何其他原因......也许是家庭作业?)那么你可以使用std::stringstream对象将它从std::string转换为{{1 }}

int

或者,您可以使用C中的std::stringstream strstream(num); int iNum; num >> iNum; //now iNum will have your integer 功能来帮助您

atoi

所以你的程序应该是这样的:

std::string st = "12345";
int i = atoi(st.c_str()); // and now, i will have the number 12345