码迷,mamicode.com
首页 > 其他好文 > 详细

Convert integer to string(int类型转化为string类型)

时间:2014-05-03 17:46:11      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:c++   int转string   

译:      

        这是一个常见的问题,但是对于这个问题我没有找到一个很好的方法:如何将整数类型转化为字符串类型?我遇到过几种解决方案。我不会使用stringstream。sprintf()函数也遇到了问题,并且它是C语言的风格。函数itoa()以前工作地很好,但参考文档说:

这个函数在ANSI-C中没有被定义,并且它不是C++的一部分,但有些编译器支持
并且这个函数也是C语言风格。

        我自己写了一个C++风格的函数,并且它工作起来没有错误(译者注:我不这么认为,详见后文)

string convertInt(int number)
{
    if (number == 0)
        return "0";
    string temp="";
    string returnvalue="";
    while (number>0)
    {
        temp+=number%10+48;
        number/=10;
    }
    for (int i=0;i<temp.length();i++)
        returnvalue+=temp[temp.length()-i-1];
    return returnvalue;
}

        不过,我认为有一个标准的函数(C++风格)可以使用。如果没有,谁能给一个关于stringstream如何工作的案例代码或者链接?

        感激任何帮助!

——————————————————————————————————————————

译者注:

       1. 对于C++我也遇到这个简单而没有很好的解决方法的问题,所以翻译此文,如果大家有好的方法,请赶快贴出来分享一下。

        2.该作者写的函数只适用于非负int型整数,对于int型整数可以这么写:

string intToString(int number)
{
	bool sign=true;
	if (number == 0)
	{
		return "0";
	}
	else if (number<0)
	{
		sign=false;
		number=-number;
	}
	string temp="";
	string returnValue="";
	while (number>0)
	{
		temp+=number%10+48;
		number/=10;
	}
	for (int i=0;i<temp.length();i++)
		returnValue+=temp[temp.length()-i-1];
	return sign==true?returnValue:"-"+returnValue;
}
        3.对于超过int范围的整数,比如12345678901,-12345678901,该函数就又不能使用了,这时候需要继续想办法解决。

        欢迎各路高手给出你认为C++中最好的方法,当然也可以是你自己写的函数。



原文链接:http://www.cplusplus.com/forum/beginner/7777/

Convert integer to string(int类型转化为string类型),布布扣,bubuko.com

Convert integer to string(int类型转化为string类型)

标签:c++   int转string   

原文地址:http://blog.csdn.net/lynch0571/article/details/24867157

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!