当前位置:C++技术网 > 资讯 > 数据结构作业之串实现简易的通讯录

数据结构作业之串实现简易的通讯录

更新时间:2016-06-03 23:24:58浏览次数:1+次

数据结构老师给我们布置的作业就是用KMP算法实现一个通讯录。我原本是想用通讯录来着,但是后来一想,直接用STL中的string::find方法也能实现,find方法其实也是查找子串!整个程序都是基于STL,下面先看看实现:

函数实现:
#include "stdio.h"
#include "iostream"
#include "windows.h"
#include "vector"
#include "algorithm"
#include "iterator"
#include "string"

using namespace std;

int main()
{
	vector<string> vec;
	cout<<"----------------------------输入通讯人的信息:--------------------------------"<<endl;
	copy(istream_iterator<string>(cin),istream_iterator<string>(),back_inserter(vec));
	cin.clear();///////////////////清除状态

	cout<<"----------------------------显示通讯人的信息:---------------------------------"<<endl;
	copy(vec.begin(),vec.end(),ostream_iterator<string>(cout,"\n"));

	cout<<"----------------------------请输入通讯人的名字进行查找:----------------------"<<endl;
	string name;
	cin>>name;

	cout<<"----------------------------通讯录查找结果:----------------------------------"<<endl;
	for (int i=0; i<vec.size(); i++)
	{
		string str=vec.at(i);
		if (str.find(name)!=string::npos)
		{
			cout<<str<<endl;
		}
	}

	system("pause");
	return 0;
}
代码其实通俗易懂,主要就是copy算法结束输入时的ctrl+z需要用cin.clear来清除限制状态