-
2021-06-23 21:00:36
1. 概念
std::to_string是c++11之后提供的转字符串函数,定义在头文件中。
2. 类型
std::string to_string( int value ); //与 std::sprintf(buf, "%d", value)在有足够大的 buf 时产生的内容相同 std::string to_string( long value ); //与 std::sprintf(buf, "%ld", value)在有足够大的 buf 时产生的内容相同 std::string to_string( long long value ); //与 std::sprintf(buf, "%lld", value)在有足够大的 buf 时产生的内容相同 std::string to_string( unsigned value ); //与 std::sprintf(buf, "%u", value)在有足够大的 buf 时产生的内容相同 std::string to_string( unsigned long value ); //与 std::sprintf(buf, "%lu", value)在有足够大的 buf 时产生的内容相同 std::string to_string( unsigned long long value ); //与 std::sprintf(buf, "%llu", value) 在有足够大的 buf 时产生的内容相同 std::string to_string( float value ); //std::sprintf(buf, "%f", value) 在有足够大的 buf 时产生的内容相同 std::string to_string( double value ); //std::sprintf(buf, "%Lf", value) 在有足够大的 buf 时产生的内容相同 std::string to_string( long double value );
注意:
std::to_string
由于格式化目的依赖本地环境,从而当多个线程同时调用std::to_string
时可能会导致调用的部分序列化结果。 C++17 提供高性能、不依赖本地环境的替代者 std::to_chars。3. 示例
#include <string> #include <iostream> using namespace std; int main() { int i = 10; std::string s = std::to_string(i); cout<< s <<endl; //10 float f = 1.1; std::string s1 = std::to_string(f); cout<< s1 <<endl; //1.100000 double d = 12.23; std::string s2 = std::to_string(d); cout<< s2 <<endl; //12.230000 return 0; }
更多相关内容 -
mingw to_string()头文件
2018-11-05 15:53:58补充mingw c++11下部分实现 (to_tring) 包括 wchar.h stdio.h -
C++中的to_string()函数[C++11支持],to_string11
2021-05-25 02:11:45C++中的to_string()函数[C++11支持],to_string11C++ ->... std::basic_string定义于头文件std::string to_string(int value); (1) (C++11起)std::string to_string(long value); (2) (C++11起)s...C++中的to_string()函数[C++11支持],to_string11
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了同样内容的一个字符串转换成一个浮点值.
参数
value - 一个数值转换
返回值
一个字符串保持转换后的值
示例
#include
#include
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
相关文章暂无相关文章
-
std::to_string
2019-04-13 15:40:51项目中遇到一个要将int转成std::string的使用,看到前面同事是通过stringstream实现的,感觉有点麻烦,实现方式如下: #include <iostream> #include <sstream> #include <string> using ...项目中遇到一个要将int转成std::string的使用,看到前面同事是通过stringstream实现的,感觉有点麻烦,实现方式如下:
#include <iostream> #include <sstream> #include <string> using namespace std; int main() { int sn = 33; std::string s_user = "admin"; std::string s_str; std::stringstream ss; ss.str(""); ss << sn; ss >> s_str; s_str += s_user; cout << "s_str:" << s_str; return 0; }
通过搜索int转string发现了to_string()
to_string()实现:
#include <iostream> #include <string> using namespace std; int main() { int sn = 33; std::string s_user = "admin"; std::string s_str; s_str = std::to_string(sn) + s_user; cout << "s_str:" << s_str; return 0; }
1.int转string
1.1 c++11标准增加了全局函数std::to_string:
string to_string (int val); string to_string (long val); string to_string (long long val); string to_string (unsigned val); string to_string (unsigned long val); string to_string (unsigned long long val); string to_string (float val); string to_string (double val); string to_string (long double val);
示例一:
// to_string example #include <iostream> // std::cout #include <string> // std::string, std::to_string int main () { std::string pi = "pi is " + std::to_string(3.1415926); std::string perfect = std::to_string(1+2+4+7+14) + " is a perfect number"; std::cout << pi << '\n'; std::cout << perfect << '\n'; return 0; }
输出:
pi is 3.141593 28 is a perfect number
1.2 采用sstream中定义的字符串流对象来实现
#include <iostream> // std::cout #include <string> // std::string, std::to_string #include <sstream> // std::ostringstream using namespace std; int main () { ostringstream os; //构造一个输出字符串流,流内容为空 int i = 12; os << i; //向输出字符串流中输出int整数i的内容 cout << os.str() << endl; //利用字符串流的str函数获取流中的内容 return 0; }
这里利用ostringstream实现,其实和利用stringstream同理;
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
stringstream类同时可以支持C风格的串流的输入输出操作。具体使用可参考:https://www.jb51.net/article/100691.htm
2.string转int
2.1 c++11标准使用std::stoi/stol/stoll等函数:
#include <iostream> #include <string> int main() { std::string str1 = "45"; std::string str2 = "3.14159"; std::string str3 = "31337 with words"; std::string str4 = "words and 2"; int myint1 = std::stoi(str1); int myint2 = std::stoi(str2); int myint3 = std::stoi(str3); // error: 'std::invalid_argument' // int myint4 = std::stoi(str4); std::cout << "std::stoi(\"" << str1 << "\") is " << myint1 << '\n'; std::cout << "std::stoi(\"" << str2 << "\") is " << myint2 << '\n'; std::cout << "std::stoi(\"" << str3 << "\") is " << myint3 << '\n'; //std::cout << "std::stoi(\"" << str4 << "\") is " << myint4 << '\n'; }
输出:
std::stoi("45") is 45 std::stoi("3.14159") is 3 std::stoi("31337 with words") is 31337
2.2 采用标准库中atoi函数,对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等
string s = "12"; int a = atoi(s.c_str());
2.3 采用sstream头文件中定义的字符串流对象来实现转换
istringstream is("12"); //构造输入字符串流,流的内容初始化为“12”的字符串 int i; is >> i; //从is流中读入一个int整数存入i中
参考资料:
https://blog.csdn.net/u010510020/article/details/73799996
https://zh.cppreference.com/w/cpp/string/basic_string/to_string -
to_string() 函数
2020-06-23 20:59:15包含头文件 <string> 功能:将括号内的 数字 转化为 字符串 to_string( idata ) #include <string> #include <iostream> int main() { std::string s="the pi is "; std::cout << s &...包含头文件 <string>
功能:将括号内的 数字 转化为 字符串
to_string( idata )
#include <string> #include <iostream> int main() { std::string s="the pi is "; std::cout << s << std::endl; s += std:: to_string(3.141592653589); std::cout << s << std::endl; s.clear(); s = std:: to_string(2.7+3.14159); std:: cout << s << std::endl; system("pause"); return 0; }
运行结果:
-
C++11 std::to_string
2019-02-14 22:32:59目前C ++11提供了std::to_string 效率方面:C风格的sprintf()没有动态分配内存效率最高;std::to_string其次;std::stringstream效率最差 从C++17开始,std::to_string的效率将不差于sprintf,同时有类型更安全的... -
C++ to_string的使用
2019-03-18 11:49:30举例: // to_string example #include <iostream> // std::cout ... // std::string, std::to_string int main () { std::string pi = "pi is " + std::to_string(3.1415926)... -
解决Dev-C++ 中to_string()报错问题
2022-04-25 22:14:48问题:dev c++编译时关于语句key += to_string(coding[i]);在声名#include 的前提下仍旧报错,上网查询要在tool-Compiler Options中勾选Add the following commands when calling the comoiler选项,然后在输入框中... -
to_string在C++中无法使用?
2017-11-02 14:15:37很多场合需要将一些基本数据类型转化成字符串,java中有toString方法,C++中也有to_string函数调用,包含文件为<string>。 具体用法可以看这里:to_string,测试例子: // to_string example #include <... -
C++中to_string函数的用法
2021-07-13 09:03:12to_string 函数:将数字常量转换为字符串,返回值为转换完毕的字符串 头文件:#include < string >(必须加) string s = to_string(i); //将整数i转换为字符串表示形式 string to_string (int val); string ... -
【贪玩巴斯】C++ tips——知识点:to_string()函数
2021-12-15 15:18:43C++ tips——知识点:to_string函数to_string()函数 to_string()函数 to_string 函数: 将数字常量转换为字符串, 返回值为转换完毕的字符串 头文件: #include string s = to_string(i); //将整数i转换为字符串表示... -
C++ 之 to_string的用法
2021-02-15 10:13:56前置条件:#include<string> 功能:将数字常量转换为字符串 ...std::string to_string(int value); (1) (C++11起) std::string to_string(long value); (2) (C++11起)&... -
C++ 之 to_string
2018-09-05 22:12:09前置条件:#include<string> 功能:将数字常量转换为字符串 ...std::string to_string(int value); (1) (C++11起) std::string to_string(long value); (2) (C++11起) std::string to_... -
[Error] 'to_string' was not declared in this scope to_string()用不了
2019-11-15 21:49:05在C++11标准库中,string.h已经添加了to_string方法,方便从其他类型(如整形)快速转换成字面值。但是在NDK编译过程中发现如下问题: error: 'to_string' was not declared in this scope 使用std::to_string()... -
C++实现——to_string(int num)函数
2016-04-08 15:38:05//to_string 是C++11新的特性//数字转换成字符串 //即实现string to_string(int num) #include #include using namespace std; string my_to_string(int num){ //计算数字的位数 int len = log10(num) + 1; //... -
c++ to_wstring和to_string保留指定位小数
2018-11-03 10:27:24void setPrecision_float2wstring(wstring& s,int precision)//precision n.精度 { int pos=s.find(L".",sizeof(wchar_t));//得到小数点的索引,从零开始 int i = s.length() - 1 - pos - ...to_string同理 -
Dev C++ 报错: ‘to_string‘ was not declared in this scope
2021-05-04 14:50:26今天在dev c++中使用to_string函数的时候,发现不能使用。查找原因后发现是编译器的问题,希望能帮到其他小伙伴。 Dev C++ 编译器:在菜单栏点开工具(Tools)-> 编译选项(Compile Options),加上下图所示的... -
C++转换为字符串(to_string;to_wstring)
2019-03-08 10:15:23头文件string string to_string (int val); string to_string (long val); string to_string (long long val); string to_string (unsigned val); string to_string (unsigned long val); string to_string... -
c++之to_string()函数
2018-11-21 18:46:00函数原型:string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long l... -
c++ string头文件
2016-10-13 18:25:36标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作... -
to_string()用不了
2018-04-24 10:19:36在C++11标准库中,string.h已经添加了to_string方法,方便从其他类型(如整形)快速转换成字面值。但是在NDK编译过程中发现如下问题:error: 'to_string' was not declared in this scope使用std::to_string()之后... -
to_string函数
2020-07-14 21:08:00前置条件:#include<string> 功能:将数字常量转换为字符串 参数:value ...返回值:转换好的字符串 ...std::string to_string(int value); (1) (C++11起) std::string to_st... -
to_string函数的用法
2019-07-20 19:12:23to_string 函数:将数字常量转换为字符串,返回值为转换完毕的字符串 头文件:#include<string> string s = to_string(i); //将整数i转换为字符串表示形式 string to_string (int val); string to_string ... -
c++:stoi()和to_string()函数
2021-02-03 16:33:44包含在头文件#include<string> 1.stoi函数 作用: 将 n 进制的字符串转化为十进制 用法 stoi(字符串,起始位置,n进制(默认10进制)),将 n 进制的字符串转化为十进制 举例: stoi(str... -
codeblocks不能使用to_string的解决方案
2019-10-09 22:09:072.若问题不能解决则更新相关头文件 下载地址:Enabling string conversion functions in MinGW 将include文件夹下的wchar.h和stdio.h拷贝到MinGW的include文件夹中,一般是C:\mingw\include 或者 D:\Program Files\... -
C++ 数字转换为字符串(二:使用to_string)
2020-08-16 19:30:08一、利用stringstream ...二、利用to_string 头文件<string> 需要支持C++11 #include<iostream> #include<string> using namespace std; int main() { int n=89798; string s1; s1=to_st -
程设刷题 | 编译C++文件出现to_string is not a member of std 或者 to_string was not declared in this ...
2017-09-01 21:36:33写在前面 原文链接:Enabling string conversion functions in MinGW ...头文件包含的函数:to_string()! 然而在Codeblocks等编译环境中,有时候会出现 to_string was not declared in this scope 等问题,原因... -
C++数字转字符串 to_string()
2021-03-16 20:50:05to_string() 可以将整数、浮点数等数字转换为字符串并返回得到的字符串(注意:只有支持C++11标准的编译器才可以编译成功) 调用形式: string to_string (int val); string to_string (long val); string to_string ... -
解决error: ‘to_string’ was not declared in this scope
2019-12-12 14:40:49to_string是c++11的新方法 可以将数值类型很轻松的转换为字符串类型。 官方的解释如下: Convert numerical value to string Returns astringwith the representation ofval. 使用方法如下: string to_... -
Android的c++代码里,std::to_string等不能使用的解决办法
2019-08-16 16:05:45之前float、int等转字符串一直傻不拉几的用stringstream,最近才发现竟然有个to_string。 string to_string (int val); string to_string (long val); string to_string (long long val); string to_string ...