C++中想要从一个字符串中查找含有另一个字符串全体的位置?
想要在c串中找到含有与b串所有元素(字符相同并且排序相同)的第一个位置
如:c串为"ab/ ac/ abcdefg/ "
b串为"ac/ "
用什么函数能够找出"ac/ "在第4个字符
问题点数:20、回复次数:10Top
1 楼sunman1982(冥王星)回复于 2005-05-20 22:47:39 得分 0
用范性算法好了Top
2 楼sunman1982(冥王星)回复于 2005-05-20 22:48:22 得分 0
stl的searchTop
3 楼crek2002(冷冻火焰)回复于 2005-05-20 22:58:01 得分 15
#include<iostream>
#include<string>
using namespace std;
int main()
{
string c("ab/ ac/ abcdefg/");
string b("ac/");
cout<<c.find(b)<<endl;
return 0;
}Top
4 楼sunman1982(冥王星)回复于 2005-05-20 22:58:52 得分 3
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s1("abacabcdefg"),s2("ac");
string::size_type first_pose=s1.find("ac");//第一个
string::size_type last_pose=s1.rfind("ac"); //最后一个
cout<<first_pose<<endl;
cout<<last_pose<<endl;
system("pause");
}Top
5 楼qhfu(改个名字)回复于 2005-05-20 22:59:41 得分 1
用find(string s,pos);//s为要查找的子串,pos为 开始位置.Top
6 楼yyj1982(一切从头开始,好好学英语)回复于 2005-05-20 23:09:54 得分 0
同意楼上所说的!!!Top
7 楼hoya5121(饿了就喝水)回复于 2005-05-21 13:27:57 得分 0
看看stl的string,好像mfc的CString也有Top
8 楼zdy_8212(zdy_8212)回复于 2005-05-22 06:57:13 得分 1
先想下如果没有函数的情况下的操作吧。一般你可以找这些函数:POS(),SEARCH, LOCATE, FINDTop
9 楼chengshiq(Love by heart)回复于 2005-05-22 11:08:42 得分 0
char * strstr(const char * str1, const char * str2);
这个函数返回一个指针,指向str1字符串中第一次出现str2字符串的地方。如果在str1中没有找到str2字符串,函数就返回空指针。
用这个函数就应该可以解决楼主问题吧Top
10 楼xixi96()回复于 2005-05-23 12:45:57 得分 0
回复人: chengshiq(Love by heart) ( ) 信誉:100 2005-05-22 11:08:00 得分: 0
char * strstr(const char * str1, const char * str2);
这个函数返回一个指针,指向str1字符串中第一次出现str2字符串的地方。如果在str1中没有找到str2字符串,函数就返回空指针。
用这个函数就应该可以解决楼主问题吧
楼上说的这个我考虑过,可是他所能查找的是str2的第一个字符,而不是包括整个str2 串的位置,找到的位置是0,而不是4Top




