• C++ 如何把string转为int,如何把int转为string(字符串转为数字,数字转为字符串)


    在使用C++刷题的时候,经常需要对输入进行处理,很多时候需要把字符串转为数字,或者数字转为字符串,这时候如何处理?
    C++11之后这样的转化非常容易。

    1. 字符串转为数字(string转为int)

    1. 1 stoi(C++11之后)

    用法:

    #include 
    #include 
    
    int main() {
    
        std::string str = "123";
        int num;
    
        // using stoi() to store the value of str1 to x
        num = std::stoi(str);
    
        std::cout << num;
    
        return 0; } ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    1.2 atoi,C++11之前或者是对c风格的字符串

    用法:

    #include 
    
    // cstdlib is needed for atoi()
    #include 
    
    using namespace std;
    
    int main() {
    
        // declaring and initializing character array
        char str[] = "456";
        int num = std::atoi(str);
    
       std::cout << "num = " << num;
        
        return 0; } ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    对于std::string str

    atoi( str.c_str() )
    
    • 1

    1.3 采用stringstream

    用法:

    #include 
    #include 
    #include  // this will allow you to use stringstream in your program
    
    using namespace std;
    
    int main() {
        //create a stringstream object, to input/output strings
       stringstream ss; 
       
       // a variable named str, that is of string data type
       string str = "7";
       
       // a variable named num, that is of int data type
       int num;
       
       
       //extract the string from the str variable (input the string in the stream)
       ss << str;
       
       // place the converted value to the int variable
       ss >> num;
       
       //print to the consloe
       cout << num << endl; // prints the intiger value 7
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    推荐用第一种,简单易懂

    2. 数字转为字符串(int转为string)

    2.1 to_string()

    #include 
    #include 
    
    using namespace std;
    
    int main() {
        int num = 123;
        
        std::string str = to_string(num);
    
        std::cout << str;
    
        return 0; } ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2.2 stringstream

    #include 
    #include
    #include // for using stringstream
    
    using namespace std;
    
    int main() {
        int num = 15;
      
        // creating stringstream object ss
        std::stringstream ss;
      
        // assigning the value of num to ss
        ss << num;
      
        // initializing string variable with the value of ss
        // and converting it to string format with str() function
        std::string strNum = ss.str();
        std::cout << strNum;
    
        return 0; 
        } 
        ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2.3 itoa(先转化为c风格字符串)

    int a = 10;
    char *intStr = itoa(a);
    string str = string(intStr);
    
    • 1
    • 2
    • 3

    3. 参考资料:

    https://www.freecodecamp.org/news/string-to-int-in-c-how-to-convert-a-string-to-an-integer-example/
    https://www.programiz.com/cpp-programming/string-int-conversion
    https://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c

  • 相关阅读:
    简单对比一下 C 与 Go 两种语言
    售后处置跟踪系统设想
    富格林:揭露黑幕平台保障安全
    【Python】第二课 python入门学习
    【贪心基本算法】贪心算法常见题目
    Practical Deep Raw Image Denoisingon Mobile Devices
    利用webSocket实现扫码登录PC端
    小满nestjs(第十三章 nestjs 上传图片-静态目录)
    ScalableViT网络模型
    成集云 | 金蝶K3集成聚水潭ERP(金蝶K3主管库存)| 解决方案
  • 原文地址:https://blog.csdn.net/Sansipi/article/details/127597687