C++ 截取字符串,从0开始截取到我指定的某个字符串位置.

SOFTWARE\Wow6332Node\Microsoft\Windows\CurrentVersion\Uninstall\GoogleChrome\Chrome.e... SOFTWARE\Wow6332Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome\Chrome.exe,0 这是原串
SOFTWARE\Wow6332Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome\Chrome.exe,-1 这是原串
截取后
SOFTWARE\Wow6332Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome\Chrome.exe
.exe后面的全不要.
CString类型
展开
 我来答
北府虎贲
2014-10-22 · TA获得超过2401个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:109万
展开全部
不大熟悉CString,百度百科上看到的CString的成员函数,应该能解决你的问题

1.CString对象字符串的查找操作
int Find(PCXSTR pszSub,int iStart=0) const throw();
在CString对象字符串的iStart索引位置开始,查找子字符串pszSub或字符ch第一次出现的位置,如果没有找到则返回-1。

CString str = _T("jizhuomi");
int nIndex1 = str.Find(_T("zh")); // nIndex1的值为2

2.CString对象字符串的提取操作
CString Left(int nCount) const;
提取该字符串左边nCount个字符的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。

CString str1 = _T("jizhuomi");
CString str2 = str1.Left(3); // str2为"jiz"

你的问题就是用Find(),查找","号的索引x,然后Left(x)截取","号左边的x个字符,具体你自己看看,c的忘了好多

按照你的意思,以.exe为划分一个道理,非得要代码吗,我们几个人说的很清楚吧。。
str = str.Left(str.ReverseFind(".exe")+4);
追问
已经自己解决
mafangsan
2014-10-22 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2567万
展开全部
你这个问题其实是去子串的问题

1)对CString 做一次find 逗号
2)把上面的逗号返回的位置,作为substr的第二个参数。
追问
有没有代码啊, 逗号不行,有的串里面没有逗号. find 第一个.exe 我觉得行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
saatt
2014-10-22 · TA获得超过316个赞
知道小有建树答主
回答量:459
采纳率:50%
帮助的人:119万
展开全部
strKey = strKey.Left(strKey.ReverseFind(','));
更多追问追答
追问
后面的不一定有逗号,还有的exe后面什么也没有的呢
追答
那你要把你的规则描述出来,然后才可能用代码实现呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式