c++ int转化为string 类型
答案:6 悬赏:60 手机版
解决时间 2021-01-28 05:11
- 提问者网友:精神病院里
- 2021-01-27 06:16
c++ int转化为string 类型
最佳答案
- 五星知识达人网友:像个废品
- 2021-01-27 06:58
#include
里面有to_string的函数可以写s=std::to_string(x),有多个重载,x是整型的或浮点型的,即x为内置数值类型就可以。
里面有to_string的函数可以写s=std::to_string(x),有多个重载,x是整型的或浮点型的,即x为内置数值类型就可以。
全部回答
- 1楼网友:零点过十分
- 2021-01-27 12:00
有一个函数,是可以完成这个转化得。TOSTRING()
- 2楼网友:鱼芗
- 2021-01-27 10:22
std::string szDetail;
stringstream stream;
stream<<2;
stream>>szDetail;
stringstream stream;
stream<<2;
stream>>szDetail;
- 3楼网友:十鸦
- 2021-01-27 09:40
最简单的方法
int a = 8;
string s = a+"";
int a = 8;
string s = a+"";
- 4楼网友:鱼芗
- 2021-01-27 09:22
楼主你好,可以自己设计一个函数,将整数存到数组中,思路是如12345,将每位数1,2,3,4,5分别取出来,并按一定顺序存放起来,以下程序可以供楼主参考:
#include
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);
}望楼主采纳。
#include
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);
}望楼主采纳。
- 5楼网友:酒者煙囻
- 2021-01-27 08:23
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 {
str+=strt[leng-1-i];
}
//最后strt就是你要的串了.
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
str+=strt[leng-1-i];
}
//最后strt就是你要的串了.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯