字符串查找问题

birdw111 2012-10-18 05:06:22
txt中取到的一行字符串如下
ifstream

string str = "S001:中文字符一 / S002:中文字符二 + S003:中文字符三"   (其中中文字符为任意汉字)


需要实现 : 擦除冒号到运算符之间的中文

string::size_type start = str.find(":")
string::size_type end = str.find_first_of("+-*/")

打算使用 str.erase(start,end)进行 ,结果发现 end取值出错,将中文算两格,因此会擦除4 ~ 17

使用wstring 进行 find 也是一样效果:
wifstream
wstring str
wstring::size_type


求助。。。



...全文
86 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocktyt 2012-10-18
  • 打赏
  • 举报
回复
str.erase(start,end-start);

erase第一个参数是坐标时第二个参数代表擦除的字符个数,用iterator才是擦除2个中间的字符

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧