WXSTRING:是否有使用类似Python3的占位符实现字符串格式化的C/C 代码
wxString: Is there any C/C++ code that implements string formatting using Python3-like placeholders?
我正在使用wxwidgets重写我们的应用程序。目标之一是将我们的旧方法替换为本地化字符串。另一个可能的目标是将Python解释器嵌入到应用程序中 - 但后来才。无论如何,任何C/C 代码或能够使用Curly Braces的类似Python的字符串格式的库都是不错的。
如果您不知道Python,则是其格式函数的DOC。您可以在内部找到对格式规范小语言的引用,以及格式示例。文档中的一些提取物...(>>>
是交互式Python模式的提示,下面显示了呼叫的结果。Python使用单个或双引号作为字符串定界符):
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+ only
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated
'abracadabra'
我也想将python格式与命名占位符(而不是数字索引)一起使用。在python中,使用str.format_map(映射)的字符串方法,而映射属于 map<string, some_type>
类型。说,my_dictionary
包含如下映射:
"name" --> "Guido"
"country" --> "Netherlands"
具有下面的template
字符串,我想获得result
...
wxString template("{name} was born in {country}.");
wxString result(format_map(s, my_dictionary));
// the result should contain...
// "Guido was born in Netherlands."
您知道能够使用的任何可用的C或C 代码,还是我必须写自己的?
感谢您的时间和经验,
petr
是。FMT库使用基于Python的str.format的格式字符串语法。它支持str.format
的大多数格式选项,包括命名参数。这是一个例子:
std::string s = fmt::format("{0}{1}{0}", "abra", "cad");
// s == "abracadabra"
免责声明:我是这个库的作者。
相关文章:
- 将模板与类模板扣除占位符参数匹配
- C++初始化 std::function 时如何将占位符绑定到引用/引用参数?
- Tensorflow C++ 占位符初始化
- std::bind 不会接受 bind 占位符的 std::cref - 为什么?
- qt 中的占位符
- 我可以在 c++ 中使用占位符作为数组的索引吗?
- 为什么协程不允许使用占位符返回类型?
- TensorFlow类占位符以及其他定义输入张量的方法
- QtLineEdit 占位符:如何让用户在插入模式下将字符 1 替换为 1
- 非类型模板参数中的占位符类型是否涉及作为模板参数传递的函数的重载解析?
- 是否可以使用自动占位符来推断非类型模板参数中的函数结果
- 如何使用 msgfmt 验证格式字符串中的位置表示法占位符
- 无法推断出占位符的概念
- 编译器错误boost :: asio ::占位符:: boost v1.69的错误
- 如何用PCRE2实现/e修饰符
- std::绑定可变参数模板、绑定参数和占位符
- 尾随返回类型中的占位符类型的用途是什么
- WXSTRING:是否有使用类似Python3的占位符实现字符串格式化的C/C 代码
- 如何实现自动插入隐含占位符的 easy_bind()?*带成员指针*
- 为什么 std::bind 的占位符不使用非类型模板参数实现?