怎样确定字符在CString类型的字符串中的位置 MFC
我知道用find函数就能够得到第一个出现在字符串中的该字符的位置。但对于目标字符串中存在要查找的字符有连续重复的情况下该如何实现。请教大家了。例如:目标字符串:“洋洋大奶...
我知道用find函数就能够得到第一个出现在字符串中的该字符的位置。但对于目标字符串中存在要查找的字符有连续重复的情况下该如何实现。请教大家了。
例如:目标字符串:“洋洋大奶糖”
要查找的字符:“洋”
用find函数可以确定一个洋字的位置,但第二个该如何得到,甚至第三、第四个等等的位置。 展开
例如:目标字符串:“洋洋大奶糖”
要查找的字符:“洋”
用find函数可以确定一个洋字的位置,但第二个该如何得到,甚至第三、第四个等等的位置。 展开
2个回答
展开全部
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);就可以找到第二个。
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);
}
这样就行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询