con将cstring或string转换为int

时间:2016-12-22 12:00:38

标签: c++

我想要一个int字符串,但是失败了,所以我cin string然后使用strcpy将字符串复制到char,然后使用atoi将char转换为int。但仍然失败了。你能帮助我吗? 这是错误"来自' char'的无效转换to' const_char *'。 非常感谢。

    #include <iostream>
    #include <string>
    #include <cstring>
    #include <cstdlib>
    void juge_output(int input_one[]);
    void change(char middle_one[],int input_one[]);
    using namespace std;
    int main()
    {
        int input_one[1000],input_two[1000];
        char operat,middle_one[1000],middle_two[1000];
        string cin_one,cin_two;
        cin>>operat;
        cin>>cin_one;
        cin>>cin_two;
        strcpy(middle_one,cin_one.c_str());
        strcpy(middle_two,cin_two.c_str());
        change(middle_one,input_one);
        change(middle_two,input_two);
        juge_output(input_one);
        cout<<operat;
        juge_output(input_two);
        return 0;
    }
    void juge_output(int input_one[1000])
    {
        if(input_one[0]>0)
            cout<<input_one[0];
        if(input_one[0]<0)
            cout<<input_one[0];
        for(int i=1;i<1000;i+2)
        {
          if(input_one[i]>1)
          cout<<"X^"<<input_one[i];
          if(input_one[i]==1)
            cout<<"X";
        }
        for(int m=2;m<1000;m+2)
        {
            if(input_one[m]>0)
                cout<<"+"<<input_one[m];
            if(input_one[m]<0)
                cout<<input_one[m];
        }
    }
    void change(char middle_one[],int input_one[])
    {
        for(int i=0;i<1000;i++)
            input_one[i]=atoi(middle_one[i]);
    }

2 个答案:

答案 0 :(得分:0)

std :: cin将采用整数,因此您可以直接执行

int number;
std::cin >> number;

如果你想绝对使用字符串,以下内容也可以使用

std::string test_str;
int test_number;

std::cin >> test_str;

test_number = atoi(test_str.c_str());

答案 1 :(得分:0)

您也可以直接使用字符串库函数:

std::string str1 = "45";
std::string str2 = "3.14159";
std::string str3 = "31337 with words";
std::string str4 = "words and 2";

int myint1 = std::stoi(str1);
int myint2 = std::stoi(str2);
int myint3 = std::stoi(str3);