算法——c++中int与string之间的转换

参考博客

转载自https://www.cnblogs.com/A-Little-Nut/p/8056421.html

int与string的互相转换,自己实现的话思路都很简单,但是实现起来比较麻烦。mark一下现成的可以调用的方法。

int转为string

  • 采用标准库中to_string函数。

  int i = 12; 
  cout << std::to_string(i) << endl;
 
  不需要包含任何头文件,应该是在utility中,但无需包含,直接使用,还定义任何其他内置类型转为string的重载函数,很方便。

  • 采用sstream头文件中定义的字符串流对象来实现转换。

  ostringstream os; //构造一个输出字符串流,流内容为空 
  int i = 12; 
  os << i; //向输出字符串流中输出int整数i的内容 
  cout << os.str() << endl; //利用字符串流的str函数获取流中的内容
 
  字符串流对象的str函数对于istringstream和ostringstream都适用,都可以获取流中的内容。

  • char型字符串还可以用itoa函数。

 1 #include "stdio.h"
 2 #include <stdlib.h>
 3 #include <string.h>
 4 void main()
 5 {
 6 int n=123456789;
 7 char str[20];
 8  
 9 itoa(n, str, 10);
10 printf("%s\n",str);
11 }

string转为int

  • 采用标准库中atoi函数。

  string s = "12"; 
  int a = atoi(s.c_str());
 
  对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等。

  • 采用sstream头文件中定义的字符串流对象来实现转换。

  istringstream is("12"); //构造输入字符串流,流的内容初始化为“12”的字符串 
  int i; 
  is >> i; //从is流中读入一个int整数存入i中

posted @ 2021-10-14 12:51  永远是个小孩子  阅读(217)  评论(0编辑  收藏  举报