C++风格
C++的string类提供了字符串中查找另一个字符串的函数find
其形式为:
string::size_type string::find(string &);
功能为在string对象中,查找string类型的子字符串是否存在
将返回值给string::size_type型变量时,如果存在,返回起始位置,不存在则返回 string::npos。
将返回值给int型变量时,找到字串返回字串的起始位置,没找到返回-1
int main()
{
string str="this is a test string";
string a="string";
string b="xiao";
int index1;
index1=str.find(a); //返回字串的起始地址15
cout<<index1<<endl;
index1=str.find(b); //未找到,返回-1
cout<<index1<<endl;
string::size_type index2;
index2=str.find(a);
if(index2==string::npos)
cout<<"not found"<<endl;
else
cout<<index2<<endl;
index2=str.find(b);
if(index2==string::npos)
cout<<"not found"<<endl;
else
cout<<index2<<endl;
return 0;
}
C风格
在C语言中,字符串存储为字符数组,以'\0'结束。 在C的接口中,有strstr函数,可以在字符串中查找另一个字符串。
char * strstr(const char *str1, const char *str2);
功能为在str1中查找str2,如果存在,那么返回查找到的起始指针,否则返回NULL。
int main()
{
char *str="This is a test string";
char *a="string";
char *b="xiao";
char* res=strstr(str,a);
if(res)
cout<<*res<<endl;
else
cout<<"NULL"<<endl;
res=strstr(str,b);
if(res)
cout<<*res<<endl;
else
cout<<"NULL"<<endl;
return 0;
}