我正在为日语句子制作一个自动纠正程序,句子中缺少的字符将表示为空格。
我正在阅读2个文件...
输入文件:
はアビガイル
おはよう くん
字典文件:
私はアビガイル
おはよう花くん
缺少的字符“私”和“花”表示为空格
如何从输入文件中找到空格?
我尝试了lineFromFile.find(" ")
,但它返回垃圾,因为它不是通常的英文字符。还尝试了lineFromFile.find('\0x20')
和lineFromFile.find(' ')
我也试过string lineFromFile = u8"あび"
但是u8前缀出错“标识符'u8'未定义”
我正在使用 C ++ ,Visual Studio 2013,gcc 4.8.3,我当前的代码页是Unicode(带签名的UTF-8)
如果您认为这是一个重复的问题,请将链接评论为相同的答案
我的计划是:
spaceIndex
)string temp
spaceIndex
中temp
中的字符temp
请帮忙,我有3天时间:'(
答案 0 :(得分:1)
缺少的字符“私”和“花”表示为空格
不,他们不是。在十六进制编辑器中查看 はアビガイル
表示第一个字符为'\u3000'
,IDEOGRAPHIC SPACE而非SPACE。
要找到它,您需要使用find(u8"\u3000")
或find("\xe3\x80\x80)
如果你很幸运,输入文件中的所有日文字符都被编码为UTF-8中的三个字节,那么你可以将它们视为在字符串中具有固定位置,并将三个字节的块从一个字符串替换为另一个字符串。