如何在C++中查找日语字符串中的空格
How to find space in a japanese string in C++?
我正在为日语句子编写一个自动更正程序,句子中缺失的字符将表示为空格。
我正在阅读2个文件。。。
输入文件:
はアビガイル
おはよう くん
字典文件:
私はアビガイル
おはよう花くん
缺少的字符私和花表示为空间
如何从输入文件中查找空间?
我试过lineFromFile.find(" ")
,但它返回垃圾,因为它不是常见的英文字符。还试用了lineFromFile.find(' x20')
和lineFromFile.find(' ')
我也尝试了string lineFromFile = u8"あび"
,但u8前缀出现错误"标识符'u8'未定义">
我正在使用C++、Visual Studio 2013、gcc 4.8.3,我当前的代码页是Unicode(带签名的UTF-8)
如果您认为这是一个重复的问题,请评论同一个已回答问题的链接
我的计划是:
- 从输入文件的行中查找空格(返回
spaceIndex
) - 将字典文件中的行保存在
string temp
中 - 将变量
temp
中spaceIndex
中的字符替换为 - 将输入文件中的行与
temp
进行比较 - 重复,直到找到匹配项或字典文件的eof为止
请帮忙,我有3天时间:'(
缺少的字符私和花表示为空间
不,它们不是。在十六进制编辑器中查看 はアビガイル
可以发现第一个字符是'u3000'
,它是IDEOGRAPHIC SPACE而不是SPACE。
所以要找到它,你需要使用find(u8"u3000")
或find("xe3x80x80)
如果你很幸运,输入文件中的所有日语字符都以UTF-8编码为三个字节,那么你可以将它们视为在字符串中有固定的位置,并将三个字节的块从一个字符串替换为另一个字符串。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 移除前面有空格的前2个字符串
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 在字符串中插入空格
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 使用另一个字符串从字符串中删除空格
- 我还可以添加什么来按空格或空格正确拆分C++字符串?
- C++ "noskipws"没有按预期工作,如何正确允许字符串中的空格?
- 在 c++ 中逐行阅读字符串,不要以空格停止
- std::regex:匹配由数字和空格组成的字符串,并提取数字.如何?
- 如何存储包含多个空格的字符串 c++
- 在特定位置为字符串添加空格
- 有没有办法在 c++ 中获取带有空格的完整字符串?
- C++完全复制要字符串的字符列表,而不会忽略多个空格
- Winsock2:当我尝试发送带有空格的字符串时,该函数在遇到空格时似乎停止发送
- 从没有空格的字符串中提取整数
- 用于拆分空格字符串的程序不起作用
- 解析C++中的完整(从头到尾)字符串,包括所有空格
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 当我的 if 语句在字符串中找到空格时,在无限循环中切换