编程论坛
注册
登录
编程论坛
→
C++教室
文本处理的C++请教
chaw899
发布于 2019-06-30 20:04, 1631 次点击
如何把文本中汉字数量少于4个的包括4个的行删除掉。
也就是行要被保存下来的话,至少有5个汉字。
问的简单一点,如何获得纯文本某行的汉字个数?
[此贴子已经被作者于2019-6-30 20:25编辑过]
2 回复
#2
rjsp
2019-07-01 08:51
基本上没办法,C++中有 5 种字符串类型:
char a[] = "...";
wchar_t b[] = L"...";
char8_t c[] = u8"...";
char16_t d[] = u"...";
char32_t e[] = U"...";
对于char,其编码由实现定义。比如“中文windows”用的是gbk,但用户可以自己更改。
对于wchar_t,其编码由实现定义。比如windows用的是utf16,但很多unicode编码不支持。
即便你用 char8_t、char16_t、char32_t,那 unicode 标准也在不停的添加字符,况且unicode字符相近则共用,不区分国家。
而且你还是从“文本”中读取“汉字”。
“文本”的编码你知道吗?有BOM头还好说,但大部分是没有BOM头的。
所以我真怀疑你一定要“汉字”是不是有必要。
#3
lyb661
2019-07-03 09:32
应该先用一个字节有字符试一下,然后推广,这样有代表性。也普及值得普及。
1