寻找像.NET的String.Format这样的函数的C++实现.显然有printf和它的品种,但我正在寻找一些位置如下的东西:
String.Format("你好{0}.你已经{1}岁了.感觉{1}怎么样?",姓名,年龄);
这是必要的,因为我们将尝试更轻松地本地化我们的应用程序,并将翻译器{0}和{1}放在句子中的任何位置比给他们%s,%d,%要容易得多d必须按其顺序排列.
我认为搜索和替换变量输入(va_start,va_end等)是我最终要构建的,但如果已经有一个可靠的解决方案,那将是首选.
谢谢 :)
看看boost格式库.
QT的QString允许你这样做:
QString("Hi there %1. You are %2 years old. How does it feel \ to be %2?").arg(name).arg(age)
信不信由你,printf和朋友支持位置论证.
#includeint main() { char *name = "Logan"; int age = 25; printf("Hi there %1$s, you are %2$d years old. How does it feel to be %2$d?\n", name, age); return 0; }
您可以查看FastFormat -library.