您的位置:首页 > 其它

关于字符串检索类问题的总结

2018-01-02 14:45 197 查看
  感觉字符串,字符数组问题有很多其实可以归类,其中一种很常见的问题就是要求判断字符串A中是否含有字符串B或者求出在一堆字符串中找出某个字符串出现的次数等等。在考试前稍微简单整理下:
举个例子:

对于上面这类题型个人探索出主要有两种比较简单快速的做法:
第一种是采用C风格的strstr函数:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char txt[20][100];
char str[100]; //在txt[i]中查找str
int n;
cin>>str;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>txt[i];
}
for(int i=0;i<n;i++)
{
if(strstr(txt[i],str))
cout<<txt[i]<<endl;
}
return 0;
}
第二种是采用C++风格的find函数:#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1;
cin>>str1;
int num;
cin>>num;
string str2[40];
for(int i=0;i<num;i++)
{
cin>>str2[i]; //在str2[i]中查找str1
}
for(int i=0;i<num;i++)
{ //find函数有个版本在一个字符串中查找是否存在另一子串
if(str2[i].find(str1)<str2[i].length()) //若存在则返回其找到的第一个子串的首字符下标
{ //若不存在则返回一个很大超出字符串长度的数。
cout<<str2[i]<<endl;
}
}
return 0;
}当然还有一些其他做法,比如先将被查找的单词等存入一个数组,统计长度,然后按位比较查询等方法,在此不做过多说明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: