译:
这是一个常见的问题,但是对于这个问题我没有找到一个很好的方法:如何将整数类型转化为字符串类型?我遇到过几种解决方案。我不会使用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类型)
原文:http://blog.csdn.net/lynch0571/article/details/24867157