C++中的to_string()函数[C++11支持]

C++ -> 字符串库 -> std::basic_string

定义于头文件
std::string to_string( int value ); (1) (C ++11起)
std::string to_string( long value ); (2) (C ++11起)
std::string to_string( long long value ); (3) (C ++11起)
std::string to_string( unsigned value ); (4) (C ++11起)
std::string to_string( unsigned long value ); (5) (C ++11起)
std::string to_string( unsigned long long value ); (6) (C ++11起)
std::string to_string( float value ); (7) (C ++11起)
std::string to_string( double value ); (8) (C ++11起)
std::string to_string( long double value ); (9) (C ++11起)

std::to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它。

1) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%d”, value)会产生足够大的buf.

2) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%ld”, value)会产生足够大的buf.

3) 有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%lld”, value)会产生足够大的buf.

4)std::sprintf(buf, "%u", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

5)std::sprintf(buf, "%lu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, "%llu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, "%llu", value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.
@ 7,8 @std::sprintf(buf, "%f", value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

9) std::sprintf(buf, "%Lf", value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

扫描二维码关注公众号,回复: 1446085 查看本文章

参数

value - 一个数值转换

返回值

一个字符串保持转换后的值

示例

#include <iostream>
#include <string>

int main()
{
    double f = 23.43;
    std::string f_str = std::to_string(f);
    std::cout << f_str << '\n';
}

输出:

23.430000

另请参阅

to_wstring(C ++11)

将整数或浮点值转换为wstring (函数)

在较低版本C++标准中有另外几种格式将整数转为字符串:

1.cstdlib中的itoa()(非标准的C函数, Windows特有的);
2.sprintf();
3.stringstream.str();

相关链接:
http://www.cplusplus.com/reference/string/to_string/
https://stackoverflow.com/questions/662976/how-do-i-convert-from-stringstream-to-string-in-c
https://stackoverflow.com/questions/1374468/stringstream-string-and-char-conversion-confusion

猜你喜欢

转载自blog.csdn.net/yanglr2010/article/details/52704931