C++中int转string,c语言int转换成string
如果换成C#或者Java,各种数据类型都可以随意转换,各种函数都可以随意选择。但在c语言中真的没那么简单。
我最初希望能够将类似123的int类型转换为类似“123”或C-style的字符串。
我仔细检查了C字符串的可用方法:
当然,我知道C里面的字符串是什么!
官方说法是,string是一个存储字符集的特殊容器。它是basic_string模板类的char实现,所以另一个是wchar。
typedefbasic_string字符字符串;
由于string是一个容器,容器自然会有一些操作:
比如我们常见的大小,push _ back();当然,还有开始,结束,
而且我们有很多方法包括C风格字符串的通用处理。但是没有可以把int转换成string的函数。
所以只能从另一个角度出发,先把int转换成c风格的string,再转换成string。
这种函数基本上出现在C库中。
方法1:通常在cstdlib中,有一个函数- itoa用于进行这种转换。
char * itoa ( int value,char * str,int base);相关的方法有atof,atoi.atol,但是注意这些都是C库中的函数。C库中函数的特点是字符串使用c-sytle字符串。但最悲剧的是,在UNIX中,没有这个itoa函数(它被标记为non-stondard)。所以我们只是在寻找其他方法。在cstdio中,有很多与输入输出相关的函数(包括对文件的基本操作,一句话,文件的输入输出就是标准的输入输出,需要对文件进行一些基本的操作)。例外的是其中一个函数是string ——Sprintf,sscanf.chartemp [100]的输入输出;int ss=100sprintf(temp, %d ,ss);这是利用输入输出的具体情况来决定的。我们知道,输入输出最直接的表现就是“显示”。无论是输出到文件、屏幕还是字符串,都是以字符串的形式出现。所以这种方式就是输出100,一个只占内存空间8位的数据,因为人只能读字符。所以这里就是利用上面提到的特性。方法2:使用cstdio中的sprintf方法在字符串上“显示”int数据。那么第二种方法就是使用C库中的输入输出方法。既然C++基本上都是用流对象的形式来写这里的方法,那么用c++有没有办法做到这一点呢?是啊!int a;osstream ostr奥斯特a;string s=ostr . str();看,就在这里。方法三:使用sstream的方法。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。