c++ int转化为string 类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ int转化为string 类型相关的知识,希望对你有一定的参考价值。

可以直接itoa完了再赋值string。

itoa是C函数可以将int型转为c式字符串,c式字符串到C++的转换直接赋值就行。如果是VS2010会警告itoa函数的安全性,那就用:

_itoa_s()

四个参数,第一个参数是要转的int,第二个参数是要转入的字符串指针,第三个参数是int的位数长度(记得加一,_itoa_s要在结束后加'\0'),第四个参数是要转换成多少进制。

扩展资料:

itoa函数

功能:将整型的数字变量转换为字符数组变量。在<cstdlib>中与之有相反功能的函数atoi。

用法:char *itoa (int value, char *str, int base );

返回值:返回指向str的指针,无错误返回。

int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等,大小应在2-36之间。

参考资料来源:百度百科-itoa

参考技术A #include <string>
里面有to_string的函数可以写s=std::to_string(x),有多个重载,x是整型的或浮点型的,即x为内置数值类型就可以。
参考技术B 楼主你好,可以自己设计一个函数,将整数存到数组中,思路是如12345,将每位数1,2,3,4,5分别取出来,并按一定顺序存放起来,以下程序可以供楼主参考:
#include <stdio.h>
main ()

int a,n=0,i;
char b[100];
scanf ("%d",&a);
for (a;a>0;a=a/10)
n=n*10+a%10;
for (i=0;n>0;n=n/10)
b[i++]=n%10+48;
b[i]=0;
printf ("%s\n",b);
望楼主采纳。
参考技术C 1楼的函数从没听说过.
2楼的办法太不直观
3楼的办法只对9以下的数字有效
4楼的办法可行,就是太麻烦.

我给你的办法就是直接itoa完了再赋值string itoa是C函数可以将int型转为c式字符串,c式字符串到C++的转换直接赋值就行.

补充一句,如果是VS2010会警告itoa函数的安全性,那就用
_itoa_s()吧,四个参数.第一个是要转的int,第二个是要转入的字符串指针,第三个是int的位数长度(记得加一,_itoa_s要在结束后加'\0'),第四个是要转换成多少进制,追问

举个小例子,谢了哈 把123456转化成string

追答

char p[32]=0,;//初始化临时字符串
_itoa_s(123456,p,7,10);//123456放进p指向的数组,放进个数为7个元素,以10进制放入
string str=p;将数组交给string保存.
还有另外一个方法
sprintf(p,"%d",123456);
string str=p;
也可以.
自己写一个的话可以这么写
int num=123456;
string str,strt;
str.clear();//格式化字符串
strt.clear();
do

str+=num%10+48;// 将int取10的余数后加48就是字符编译对应的数字.比如说9在字符编码中是9+48=57;
while(num/=10);//每循环一次将int小10倍,直到为0为止
int leng=str.length();//取最后串的长度
for (unsigned i=0;i<leng;i++);//将得到的字符串反转后放入新的串,

str+=strt[leng-1-i];

//最后strt就是你要的串了.

本回答被提问者采纳
参考技术D std::string szDetail;
stringstream stream;
stream<<2;
stream>>szDetail;

在c#中sring和int类能相互转化吗忘正真的高手指点一二,谢谢了。

1,一切int类型的数据都可以装换成string 类型,
2,只有数字形式的string类型才可以转换成int类型,而且并不是所有数字形式的都可以转换,因为int类型有位数限制;
比如:int a = 1;
string b = “2”;
string c =“ 123456789000”;
string d = “你好!”;
a可以转换成string类型,b可以转换成int类型,但是c就不行;d就绝对不可能!
参考技术A 不能相互转化,int 可以转换成string 但是string不能转换成int。如果string 是汉字,那转换成int 你说咋整? 参考技术B 可以的,
int i=1;
int j;
string s;
string ss="1231231312";
s=i.Tostring();
j=int.Parse(ss);
但是要注意,string 转换为int时,string 的值。
参考技术C 专业点回答您:
可以互相转化,但在string 转int的时候你要确保string 是一个数字字符组成的字符串。
比如:
int a=123;
int goalNum=0;
string numStr = "123"
string str="";
str = a.ToString();
goalNum = Convert.ToInt32(numStr);
参考技术D string转int:
string ui = "12312";
int i = Convert.ToInt32(ui);//字符串中需要是数字才能转化,你懂的
int转string:
int i = 12321;
string ui = i.ToString();

以上是关于c++ int转化为string 类型的主要内容,如果未能解决你的问题,请参考以下文章

C++ string 转化为LPCTSTR

C++中如何将int或者char转化为string类

c和c++如何把一个整数转化为string

c#中怎么把string类型转化为Url型

c语言中如何将 int转化为string 类型

string转化为int