如何在 C++ 中的日文字符串中查找 space?
How to find space in a japanese string in C++?
我正在为日语句子开发自动更正程序,句子中缺失的字符将表示为 space。
我正在读取 2 个文件...
输入文件:
はアビガイル
おはよう くん
词典文件:
私はアビガイル
おはよう花くん
缺失字符私和花表示为space
如何从输入文件中找到 space?
我试过 lineFromFile.find(" ")
但它 return 是垃圾,因为它不是通常的英文字符。还尝试了 lineFromFile.find('[=14=]x20')
和 lineFromFile.find(' ')
我也试过string lineFromFile = u8"あび"
但是u8前缀出错"identifier 'u8' is undefined"
我正在使用 C++、Visual Studio 2013、gcc 4.8.3,我当前的代码页是 Unicode(带签名的 UTF-8)
如果您认为这是一个重复的问题,请将 link 评论到相同的已回答问题
我的计划是:
- 从输入文件的行中找到space (return
spaceIndex
)
- 将字典文件中的行保存在
string temp
- 将变量
temp
中的spaceIndex
中的字符替换为
- 将输入文件中的行与
temp
进行比较
- 重复直到找到匹配项或直到字典文件的eof
请帮忙,我有3天时间:'(
The missing characters 私 and 花 are represented as a space
不,他们不是。在十六进制编辑器中查看 はアビガイル
显示第一个字符是 '\u3000'
即 IDEOGRAPHIC SPACE not SPACE.
所以要找到它,您需要使用 find(u8"\u3000")
或 find("\xe3\x80\x80)
如果幸运的话,输入文件中的所有日文字符都以 UTF-8 编码为三个字节,那么您可以将它们视为字符串中的固定位置,并将一个字符串中的三个字节块替换为另一个。
我正在为日语句子开发自动更正程序,句子中缺失的字符将表示为 space。
我正在读取 2 个文件...
输入文件:
はアビガイル
おはよう くん
词典文件:
私はアビガイル
おはよう花くん
缺失字符私和花表示为space
如何从输入文件中找到 space?
我试过 lineFromFile.find(" ")
但它 return 是垃圾,因为它不是通常的英文字符。还尝试了 lineFromFile.find('[=14=]x20')
和 lineFromFile.find(' ')
我也试过string lineFromFile = u8"あび"
但是u8前缀出错"identifier 'u8' is undefined"
我正在使用 C++、Visual Studio 2013、gcc 4.8.3,我当前的代码页是 Unicode(带签名的 UTF-8)
如果您认为这是一个重复的问题,请将 link 评论到相同的已回答问题
我的计划是:
- 从输入文件的行中找到space (return
spaceIndex
) - 将字典文件中的行保存在
string temp
- 将变量
temp
中的spaceIndex
中的字符替换为 - 将输入文件中的行与
temp
进行比较
- 重复直到找到匹配项或直到字典文件的eof
请帮忙,我有3天时间:'(
The missing characters 私 and 花 are represented as a space
不,他们不是。在十六进制编辑器中查看 はアビガイル
显示第一个字符是 '\u3000'
即 IDEOGRAPHIC SPACE not SPACE.
所以要找到它,您需要使用 find(u8"\u3000")
或 find("\xe3\x80\x80)
如果幸运的话,输入文件中的所有日文字符都以 UTF-8 编码为三个字节,那么您可以将它们视为字符串中的固定位置,并将一个字符串中的三个字节块替换为另一个。