满意答案
ygd530
2013.06.08
采纳率:55% 等级:12
已帮助:8857人
先看结果: #include
#include
#include
using namespace std;struct Words
{
char word[32];
list lines;
};void main()
{
list words;
while(1)
{
cout<
Words tempwords;
cin>>tempwords.word;
if('#' == tempwords.word[0])
break;
words.insert(words.end(), tempwords);
}
char filename[128] = {0};
cout<
cin>>filename;
FILE* fp = fopen(filename, "r");
if(!fp)
{
cout<
return;
}
char line[128] = {0};
int curline = 1;
while(1)
{
memset(line, 0, 128);
char* temp = fgets(line, 128+1, fp);
if(!temp)
break;
cout<
int flag = 0;
for(int i=0; i
{
if(' ' == temp[i] || '\n' == line[i])
{
char curword[128] = {0};
memcpy(curword, &line[flag], i-flag);
flag = ++i;
char testchar = curword[strlen(curword)-1];
if(!isalpha(testchar))
{
curword[strlen(curword)-1] = 0;
}
Words tempword;
memcpy(tempword.word, curword, strlen(curword));
for(list::iterator it=words.begin(); it!=words.end(); it++)
{
if(0 == strcmp(it->word, curword))
{
it->lines.insert(it->lines.end(), curline);
break;
}
}
break;
}
}
curline++;
}
cout<
for(list::iterator it=words.begin(); it!=words.end(); it++)
{
cout<word<lines.size()<
if(0 < it->lines.size())
cout<
for(list::iterator iti=it->lines.begin(); iti!= it->lines.end(); iti++)
{
cout<
cout<
}
cout<
}
fclose(fp);
cout<
int last;
cin>>last;
} 谢谢采纳!
04分享举报