急!!帮我改一下!!

来源:百度知道 编辑:UC知道 时间:2024/05/27 08:37:23
抽取文挡中所有的字母或数字 如有重复的话只提取一次 可是我编的程序重复出现的话 还是会被提取出来 请高手帮我改下
int extracttxt()
{
int choice;
char c,fn2[100];
fstream file1,file2;
cout<<"存储地址为:";
cin>>fn2;
cout<<"抽取内容:1.所有字母 2.所有数字"<<endl;
cout<<"请选择:";
cin>>choice;
file1.open(fn,ios::in);
file2.open(fn2,ios::out);
switch(choice)
{
case 1:
while(file1.get(c))
{
if((c>='A'&&c<='Z')||c>='a'&&c<='z')
{
cout<<c;
file2.put(c);
}
}
cout<<endl<<"已抽取完成!"<<endl<<endl<<endl;
break;
case 2:
while(file1.get(c))
{
if(c>='0'&&c<='9')
{
cout<<c;
file2.put(c);
}
}
cout<<endl<<"已抽取完成!"<<endl<<endl<&

增设标记数组
bool number[10]; //每位是对应数字
bool smallalpha[27]; //每位是 相应字母-'a'
bool bigialpha[27]; //每位是 相应字母-'A'
以上数组初始化全为false;
第一次抽取到该值是置相应标记位true;
以后每次抽取时,先判断相应标记是否为false,是false输出,否则不输出。
思路就是这样的,你应该可以实现的。