C++中int 转换成 string类型

要是换在C#或Java,各种数据类型随便转换,有各种函数随便挑。但是在C++中还真没有那么简单。

我本来是希望能够将123,这样的int类型转换的“123”这样的string,或者C-style也可以。

我仔细查了一下C++string可用的方法:

当然有了解了一下C++ 中String是什么!

官方解释中,string是一种特殊的容器,用于存储字符集。它是basic_string模板类的char实现,可知另外一个就是wchar咯

typedef basic_string<char> string;

既然string是容器,那么自然有一些容器有的操作:

如我们常见的size,push_back();当然还有begin,end,.

并且我们有很多的方法包含了对C-style字符串共同处理。但是就是没有一个函数能够将int转换成string的。

于是我们只能从另外一个角度出发了,先将int 转换成c-style字符串,然后转换成string。

这种函数基本出现在c库中。

方法一:通常在cstdlib中,有一个函数-itoa就是用来作这种转换的。

char * itoa ( int value, char * str, int base );
关联的方法还有atof,atoi.atol,但是注意这些都是C库中的函数,c库中的函数的特点就是字符串使用的是c-sytle字符串。
但是最为悲剧的是,在UNIX中,没有这样一个itoa函数(上面标明是non-stondard)。
于是我们只在看看其它的方法,在cstdio中,有众多有关输入输出的函数(也包括对文件的基本操作,一句话,对文件的输入输入就是标准的输入输入出,它需要一些基本的对文件的操作)。但例外的是,其中有一类函数是讲对字符串的输入输出——sprintf,sscanf.
char temp[100];
int ss=100;
sprintf(temp, "%d", ss);
这是利用了输入输出的特定情况来判定的,我们知道输入输出最直接的表示就是“显示”,不管是输出到文件中,屏幕上,还是字符串中,都是以字符串的形式出现的。所以,这种方式就是将100这样的一个在内存空间中只占8位的数据输出来,因为人只能看懂字符。
那么这里就是利用上面所说的特点。
方法二:使用cstdio中sprintf方法将int数据 ”显示“到字符串上。
那么方法二是用的是c库中的输入输出方法,那么既然C++基本在使用流对象的形式从写了这里面的方法,有没有方法能够使用C++的方法做到这一点呢?可以的!
int a;
osstream ostr;
ostr<<a;
string s=ostr.str();
看就这么直接得到了。
方法三:使用sstream的方法
时间: 2024-11-04 16:35:53

C++中int 转换成 string类型的相关文章

c++ int转换成string类型代码

//第一种方法 #include <iostream> #include <string> using namespace std; int main() { int n = 65535; char t[256]; string s; sprintf(t, "%d", n); s = t; cout << s << endl; return 0; } //第二种方法 #include <iostream> #include &

string-java中object转换成String类型问题

问题描述 java中object转换成String类型问题 class a122{ public static void main(String[] args){ Object d=4; String g=(String)d; } } 为什么运行时这个小程序会出错,按说object不是可以转化成String的吗 解决方案 你这种理解是错误的,因为你定义的Object类是Integer 类型,跟String类型没有关系,不能转换. 虽然可以编译通过,但是会报运行时异常java.lang.Integ

JavaScript中number转换成string介绍_javascript技巧

在JavaScript的值类型转换中,最常发生的就是string与number这两种类型值之间的相互转换. 可以通过调用number值的4个函数(事实上,是JS将number值自动转化为Number对象后,Number类的4个函数)来将其转换成string: 1.toString(). 2.toFixed(). 3.toExponential(). 4.toPrecision(). toString() 可以在number值上调用toString()方法来将其转换成字符串.toString()函

Java中byte[]转换成String有数据丢失现象,原byte[]长度为6714转换成String被截断成6400,请教各位高手

问题描述 该问题是在HTTP通信过程中发现的,本地接收到的字符数没问题,但是在转换成String过程中出问题了.字符串发送时采用UTF-8的格式,客户端默认也是采用UTF-8,以下方法试过,不管加不加字符集限制都是一样String bString = new String(byets);主要代码BufferedHttpEntity bhe = new BufferedHttpEntity(httpResponse.getEntity());BufferedInputStream buffered

c++-vector&amp;amp;lt;string&amp;amp;gt;类型如何转换成string

问题描述 vector<string>类型如何转换成string vector vstrrow; vstrrow[0]如何转换成string类型啊 求各位大神帮忙 解决方案 vector<string> vec;//定义个一个字符串容器 string str; str = "abc"; vec.push_back(str);//把字符串str压进容器 vec.push_back("def");//把字符串"def"压进容器

将string类型的图片地址转换成bitmap类型

问题描述 将string类型的图片地址转换成bitmap类型 如题......求大神解决 var sert = db.T_GrowData.Where(e => e.dateSubmit == bitdata.dateSubmit && e.status == 1).FirstOrDefault().value; Bitmap one = new Bitmap(sert); //报错:参数无效 解决方案 int类型的图片转换成drawable,Bitmap 类型Clob类型转换成St

string-Android中Editable转换成字符

问题描述 Android中Editable转换成字符 比如说,获取EditText的内容 EditText et_content = (EditText)findViewById(R.id.content); String content = et_content.getText().toString(); 我查看到getText()返回的是Editable,为什么Editable可以通过toStirng()转换成String类型? 解决方案 EditText 中getText @Overrid

bitmap-android中怎么把一个Bitmap图片转换成file类型

问题描述 android中怎么把一个Bitmap图片转换成file类型 我是根据一个URL从网上解析到的图片,代码如下://创建一个url对象URL url=new URL(showHeadimg);//打开URL对应的资源输入流 InputStream is= url.openStream(); //从InputStream流中解析出图片Bitmap bitmap = BitmapFactory.decodeStream(is); 现在想把这个bitmap转成一个File类型提交到后台,请问要

C#,int转成string,string转成int

1,int转成string用toString 或者Convert.toString()如下  例如:int varInt = 1; string varString = Convert.ToString(varInt); string varString2 = varInt.ToString(); 2,string转成int如果确定字符串中是可以转成数字的字符,可以用int.Parse(string s),该语句返回的是转换得到的int值;如果不能确定字符串是否可以转成数字,可以用int.Try