std::string格式化
时间: 2023-05-04 22:05:43 浏览: 142
std::string是C++中的一个字符串类,在处理字符串的时候非常方便实用。它不仅封装了很多字符串相关的操作函数,还提供了一些方便的格式化方法。C++中常用的格式化方法有两种,一种是sprintf函数,另一种是C++11之后提供的std::to_string方法。下面我们分别介绍这两种格式化方法的用法。
1.使用sprintf格式化字符串
sprintf是一个C语言函数,其原型为:
int sprintf(char *str, const char *format, ...);
它的作用是将按照format格式化后的字符串输出到str中,并返回输出字符数。在使用sprintf格式化字符串时,需要按照format指定的格式,把需要输出的变量依次传入,最终输出的结果保存在str中。
例如,如果我们要输出一个数字和一个字符串,可以这样写:
int num = 10;
char str[] = "hello";
char res[100];
sprintf(res, "num=%d, str=%s", num, str);
std::string s(res);
上面的代码中,我们定义了一个整型变量num和一个字符串变量str,然后使用sprintf方法把它们格式化后输出到一个临时数组res中,最后再把res转成std::string类型的s。
2.使用std::to_string格式化字符串
std::to_string是C++11中增加的一个方法,其原型为:
std::string to_string(int val);
它的作用是把一个整型或浮点数类型的变量转换为字符串类型,并返回转换后的结果。
例如,如果我们要输出一个整型变量num和一个浮点型变量f,可以这样写:
int num = 10;
float f = 3.14;
std::string s = "num=" + std::to_string(num) + ", f=" + std::to_string(f);
上面的代码中,我们先使用std::to_string方法分别把num和f格式化成字符串类型,然后再把它们连接成想要的格式。这种方法相比于sprintf更为简单,且不需要手动管理内存,因此更为推荐。
总结:
std::string是C++中常用的字符串类,在处理字符串时非常方便实用。当需要把其他类型的变量格式化成字符串时,可以使用sprintf或std::to_string方法,前者使用较为灵活但需要手动管理内存,后者使用更为简单且不需要手动管理内存。
阅读全文