怎样确定字符在CString类型的字符串中的位置 MFC

我知道用find函数就能够得到第一个出现在字符串中的该字符的位置。但对于目标字符串中存在要查找的字符有连续重复的情况下该如何实现。请教大家了。例如:目标字符串:“洋洋大奶... 我知道用find函数就能够得到第一个出现在字符串中的该字符的位置。但对于目标字符串中存在要查找的字符有连续重复的情况下该如何实现。请教大家了。
例如:目标字符串:“洋洋大奶糖”
要查找的字符:“洋”
用find函数可以确定一个洋字的位置,但第二个该如何得到,甚至第三、第四个等等的位置。
展开
 我来答
龚炜林
2012-12-23 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:577万
展开全部
CString::Find

int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;

返回值:
返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找到子字符串或字符则返回-1。

参数:
ch
要搜索的单个字符。

lpszSub
要搜索的子字符串。

nStart
字符串中开始搜索的字符的索引,如果是0,则是从头开始搜索。如果nStart不是0,则位于nStart处的字符不包括在搜索之内。

pstr 指向要搜索的字符串的指针。
说明:
此成员函数用来在此字符串中搜索子字符串的第一个匹配的字符。函数的重载可以接收单个字符(类似于运行时函数strchr)和字符串(类似于strstr)。
举个例子:使用int Find( LPCTSTR ch, int nStart ),你先找到第一个返回其位置n,然后find(”目标“,n);就可以找到第二个。
更多追问追答
追问
这些我都知道,我的意图是要确定所需查找的字在整个cstring字串中的位置。
追答
不知道你用的是VC++几,如果支持CStringW
CStringW str = L"羊羊羊羊羊羊";
int n = str.Find(L"羊", 0);
while(n != -1)
{
n = str.Find(L"羊", n+1);
}
这样就行。
水晶扇
2012-12-23 · TA获得超过1536个赞
知道大有可为答主
回答量:837
采纳率:100%
帮助的人:1103万
展开全部
int nPos=0, nLastPos=-1;
while(nPos>=0)
{
nPos = Str.Find("洋",nLastPos+1);
// 处理
nLastPos = nPos;
}
// 这样就循环查找所有的了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式