我从我的IT老师那里得到一项任务,找出给定文本中有多少字母,数字,空格和其他符号。问题是文本是用立陶宛字母(Š,š,Ę,,,Ų,ų等)写的,我不知道如何在C ++中识别它们。为了计算每种符号类型的计数,我从getline()
到fstream
逐行读取文本string
函数,然后遍历字符串,将每个字符与其字面值进行比较,例如(c >= 'A' && c <= 'Z')
表示它是一个大写字母,但它不适用于立陶宛字符。我猜文本文件以Unicode格式保存。请帮我识别正文中的立陶宛字母。
答案 0 :(得分:0)
我想你可能要打开文件二进制文件,比如(fileName,ios :: in | ios :: binary); 并逐字节地读取文件
答案 1 :(得分:0)
据我所知,你的文字以utf-8编码存储。如果它是utf-16或utf-32 - 你的getline()函数几乎总会返回一个或零个符号,我想你会注意到这一点。这里描述的UTF-8:https://ru.wikipedia.org/wiki/UTF-8。您可以使用标准库将utf-8字符串转换为wstring:UTF8 to/from wide char conversion in STL。然后你可以使用map&lt; wchar,int&gt;计算不同符号的数量。
答案 2 :(得分:0)