导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

!!!关于字符串的一个经验和一个小问题!!!!大家来讨论

136206 2002-07-24 04:01:15
刚才做了一个实验,在查找字符串情况下,pos+1和pos+2的效果一样,都可以得出正确的答案,但是在汉字情况下,pos+1和pos+2就不一样了,要跳一个\,如:
(1)c:\ttt\汉字\sun.txt, \\汉字情况
(2)c:\ttt\sss\sun.txt \\字符情况
假设第一个查找工作已经结实,pos=6了,用left(pos)此时结果为:c:\ttt,
这时用find("\\",pos+2),在字符情况下,可以得出答案为:c:\ttt\sss(和用pos+1一样)
在汉字情况下答案为:c:\ttt\汉字\sun.txt,而不是c:\ttt\汉字,
如果用pos+1,得出的答案就为c:\ttt\汉字.
呵呵,有意思,问题是解决了,但为什么会有这个差别呢?高手来说说理由吧
...全文
2 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sh210 2002-07-25
有道理,果然是这样
回复
white_whan 2002-07-25
对于汉字使用pos+2时:
从Pos+2的子串中查找'\\',但由于“汉字”是双字节编码,
第一个“汉“被截为两段,因而造成“汉”的第二个字节与“字”
的第一个字节组合成一个新的汉字,而“字“的第二个字节则与后面
的'\\'组成一个新的汉字。结果是'\\'字符消失了故而查找失败。

各位可以跟踪一下源码!
回复
136206 2002-07-25
up
回复
136206 2002-07-25
up
回复
sxslyy 2002-07-24
up
回复
sh210 2002-07-24
试了一下,果然是有这个问题,原来一直没注意,谢谢了,
为什么会有这个问题呢?奇怪啊,不管汉字是由几个字节构成的,它总不是"\"啊,没理由跳过啊
绝对关注
回复
sh210 2002-07-24
试了一下,果然是有这个问题,原来一直没注意,谢谢了,
为什么会有这个问题呢?奇怪啊,不管汉字是由几个字节构成的,它总不是"\"啊,没理由跳过啊
绝对关注
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……