//自己写的,还存在些问题,望高手指点~

#include <sstream>

#include <vector>
#include <iostream>
#include <string>
 
using namespace std;
 
const string* table[100]={0};
int size=100;
vector<string> vst;
 
void markTable(const string* table[], int& size){
int count=0; //count记录存储的单词数
int flag=0;     //标记当前单词是否已经在vector中,0为不存在,1为已存在
string s; //s存储当前输入的字符串
cout<<"输入字符串:";
getline(cin,s); //控制台输入s
istringstream isst(s);
    string word;
 
    //将原字符串中的每个单词都保存到vector容器vst中
    while (isst>>word)
{
flag=0; 
if(word=="quit"||count==size) break;
else 
{
for(vector<string>::const_iterator cit=vst.begin();cit!=vst.end();cit++){
if(word==*cit) {flag=1;break;} 
}
if(flag==0) {
vst.push_back(word);count++;
}
//flag=0;
}
}
    /*
for (vector<string>::const_iterator cit=vst.begin(); cit!=vst.end(); cit++) {//验证是否存入vector
        cout<<*cit<<endl;
    }
*/
 
int i=0;
    //使table中的指针指向每个单词
    for (vector<string>::const_iterator cit1=vst.begin(); cit1!=vst.end(); cit1++) {
table[i]=cit1;
//cout<<*(table[i])<<endl;//验证table中的指针是否成功指向每个单词
i++;
    }
 
    
}
 
void test(){
cout<<"验证是否存入vector"<<endl;
for (vector<string>::const_iterator cit=vst.begin(); cit!=vst.end(); cit++) {//验证是否存入vector
        cout<<*cit<<endl;
    }
cout<<"验证table中的指针是否成功指向每个单词"<<endl;
int i=0;
    for (vector<string>::const_iterator cit1=vst.begin(); cit1!=vst.end(); cit1++) {
cout<<*(table[i])<<endl;//验证table中的指针是否成功指向每个单词
i++;
    }
}
 
int main(void)
{
while(1){
cout<<"输入字符串的字数:";
cin>>size;
cin.get();//回收输入size的值时输入的换行符
markTable(table,size);
test();
}
system("pause");
return 0;
}