64,647
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
#include <fstream>
#include <cassert>
using namespace std;
int main()
{
string a;
string b="宝马";
cout<<"输入"<<endl;
cin>>a;
string::size_type idx;
idx=a.find(b);//在a中查找b.
if(idx == string::npos )//不存在。
cout << "没有\n";
else//存在。
cout <<"有\n";
cin.get();
cin.get();
}
#include <string.h>
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
using std::string;
int main()
{
ifstream fin("C:\\Users\\Administrator\\Desktop\\1.93\\NEE.txt");
char n[20],name[20];
cout <<"name=? ";
cin >>n;
fin.getline(name,19);
bool find=0;
while(!(find=strcmp(name,n)==0) && !fin.eof())
{
fin.getline(name,19);
}
if(find)
cout <<"yes\n";
else
cout <<"no\n";
fin.close();
cin.get();
cin.get();
}
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
string findstr(vector<string>& words, string& key) {
for (int i = 0; i < words.size(); ++i) //反过来在你输入的这句话中看有没有文本的词出现过
if (key.find(words[i]) != string::npos)
return words[i];
return string();
}
int main() {
ifstream in("in.txt");
vector<string> words;
string str;
while (!in.eof()) {
getline(in, str);
words.push_back(str);
}
in.close(); //先把所有词存起来,不要每次都去读文件
while (true) {
cout << "输入一段话:";
cin >> str;
cout << findstr(words, str) << endl;
}
return 0;
}
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
bool findstr(vector<string>& words, string& key) {
for (int i = 0; i < words.size(); ++i) //反过来在你输入的这句话中看有没有文本的词出现过
if (key.find(words[i]) != string::npos)
return true;
return false;
}
int main() {
ifstream in("in.txt");
vector<string> words;
string str;
while (!in.eof()) {
getline(in, str);
words.push_back(str);
}
in.close(); //先把所有词存起来,不要每次都去读文件
while (true) {
cout << "输入一段话:";
cin >> str;
cout << (findstr(words, str) ? "yes" : "no") << endl;
}
return 0;
}
200万行太多了,不可能全部读到内存中,用一个文本实现很困难,这个可以构建搜索树或者哈希表来处理,显然原来的代码不能用了
200万行太多了,不可能全部读到内存中,用一个文本实现很困难,这个可以构建搜索树或者哈希表来处理,显然原来的代码不能用了
[quote=引用 4 楼 穿袜子的猫和穿靴子的狗 的回复:] 大恩不言谢,大哥我这点分都给你!