在C++中,std::string
类没有提供String.Format
方法。但是,您可以使用std::ostringstream
来实现类似的功能。
以下是一个使用std::ostringstream
实现类似String.Format
功能的示例:
#include<iostream>
#include <sstream>
#include<string>
std::string string_format(const std::string& fmt, ...) {
std::ostringstream oss;
va_list args;
va_start(args, fmt);
for (size_t i = 0; i < fmt.size(); ++i) {
if (fmt[i] == '{') {
++i;
if (i < fmt.size() && fmt[i] == '}') {
oss << va_arg(args, int);
} else {
oss << '{';
}
} else if (fmt[i] == '}') {
++i;
if (i < fmt.size() && fmt[i] == '{') {
oss << '}';
} else {
oss << '}';
}
} else {
oss<< fmt[i];
}
}
va_end(args);
return oss.str();
}
int main() {
std::string result = string_format("Hello, {0}! Today is {1}.", "Alice", "Monday");
std::cout<< result<< std::endl;
return 0;
}
在这个示例中,string_format
函数接受一个格式字符串和一个可变参数列表。它使用std::ostringstream
将格式字符串和参数列表合并为一个字符串。在格式字符串中,您可以使用{0}
、{1}
等占位符来表示参数的位置。
请注意,这个实现非常简单,只支持整数参数。如果您需要支持其他类型的参数,您可以修改string_format
函数以接受更多的参数类型。
领取专属 10元无门槛券
手把手带您无忧上云