这里的新用户,请保持柔和。
我们希望在C ++中实现一段python代码,但是它涉及一些称为unicodedata的复杂unicode库,尤其是此函数
unicodedata.category('A') # 'L'etter, 'u'ppercase
'Lu'
有什么机会可以用C ++轻松实现吗?假设我们要在在线tensorflow模型服务的上下文中这样做,将编译后的python代码嵌入c ++是否值得?谢谢!
答案 0 :(得分:1)
只需将此Python代码的输出粘贴到C ++源文件中即可:
import unicodedata
print('typedef enum {Cn, Cc, Cf, Co, Cs, Ll, Lm, Lo, Lt, Lu, Mc, Me, Mn, Nd, Nl, No, Pc, Pd, Pe, Pf, Pi, Po, Ps, Sc, Sk, Sm, So, Zl, Zp, Zs} CATEGORY_e;')
print('const CATEGORY_e CHAR_CATEGORIES[] = {%s};' % ', '.join(unicodedata.category(chr(codepoint)) for codepoint in range(0x110000)))
(如果您仍在使用Python 2.x而不是3.x,请将chr
替换为unichr
。)
您现在有了一个方便的Unicode字符类别查询表,可以在您的C ++程序中使用。