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

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

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

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

用法:

#include <iostream>
#include <string>

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 atoi,C++11之前或者是对c风格的字符串

用法:

#include <iostream>

// cstdlib is needed for atoi()
#include <cstdlib>

using namespace std;

int main() {
     
     

    // declaring and initializing character array
    char str[] = "456";
    int num = std::atoi(str);

   std::cout << "num = " << num;
    
    return 0; } ```

对于std::string str

atoi( str.c_str() )

1.3 采用stringstream

用法:

#include <iostream>
#include <string>
#include <sstream> // 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
}

推荐用第一种,简单易懂

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

2.1 to_string()

#include <iostream>
#include <string>

using namespace std;

int main() {
     
     
    int num = 123;
    
    std::string str = to_string(num);

    std::cout << str;

    return 0; } ```

2.2 stringstream

#include <iostream>
#include<string>
#include<sstream> // 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; 
    } 
    ```

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

int a = 10;
char *intStr = itoa(a);
string str = string(intStr);

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

猜你喜欢

转载自blog.csdn.net/Sansipi/article/details/127597687