永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-11-21 19:08
怎样确定字符在CString类型的字符串中的位置 MFC
最佳答案
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);
}
这样就行。追问但是如果中间有几个汉字在目标串中找不到,那后面查找到的字的位置就不好确定了。追答找不到就是返回-1,那还需要找吗?还有疑问,在评论中留言,其实不支持CStringW也可以在Unicode模式下编译就行的。
全部回答
int nPos=0, nLastPos=-1;
while(nPos>=0)
{
nPos = Str.Find("洋",nLastPos+1);
// 处理
nLastPos = nPos;
}
// 这样就循环查找所有的了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
世界上第一次把圆周率数值精确地推算到小数点
“后发外生型”是什么意思
求金贤重 let's party 的日语歌词,要有
别人说看我面相就知道是有福气之人,是什么意
100分之99.9的平方+19.98+0.01
下定决心休息一天没想到,领导来电话下午让过
家用电器使我们的生活发生了哪些变化
正章乾洗(瑞香道52)地址在什么地方,想过去办
T-ARA的全体成员资料、
耀的第二代简体字
用简便方法计算3333x2222+1111x3334
房子的基准利率是4.9(按一年来计)上浮30%后
求助啊!我的htc e8买了1年多点!右面屏幕边
婚礼上有牵母亲的手出场的吗,因父亲已不在
和平百货总代理地址在哪,我要去那里办事,
推荐资讯
农历一九九四年,嗯,农历六月二十一日是国历的
日语化学成分 ポリアルキル(C 1~20)アルコキ
男的走着路把手抬在胸前什么意思
为什么我的脊背上会有风团
实用微信小技巧:微信怎么缴纳社保
石榴树一般在哪里生长呢
有什么风炮可以在空间狭小的地方拆装螺丝?
请教用什么木材做门比较好
已知0<a<1,求证:1/a+1/1-a≧4的详细
锐捷ac 5708里wlan怎么改名字
G42高速有没有全线通车
问一个小学作业上的问题哦。。猜成语,例如一
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?