剔除重复边
剔除第三列多余的‘1’
处理代码如下:
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
void trim(string &s)//去掉字符串首尾空格
{
if( !s.empty() )
{
s.erase(0,s.find_first_not_of(" "));
s.erase(s.find_last_not_of(" ") + 1);
}
}
void cancle(string &s)
{
int len=s.size();
string ss;
int i;
for(i=0;i<len-1;i++)
{
ss=ss+s[i];
}
s=ss;
}
int main()
{
char buffer[5485][256];
string b;
fstream out;
out.open("jazz.txt",ios::in);
//cout<<"jazz.txt"<<" 的内容如下:"<<endl;
int i=0;
while(!out.eof())
{
out.getline(buffer[i],256,'\n');//getline(char *,int,char) 表示该行字符达到256个或遇到换行就结束
//cout<<buffer[i]<<endl;
b=buffer[i];
trim(b);
cancle(b);
strcpy(buffer[i],b.c_str()); //b.c_str()用于将string型转为字符数组
i++;
}
out.close();
int j,k;
for(j=3;j<5485;j++)
{
for(k=j+1;k<5485;k++)
{
/*if(j==8&&k==1255)
{
cout<<buffer[j]<<endl;
cout<<buffer[k]<<endl;
if(strcmp(buffer[j],buffer[k])==0)
{
cout<<"equal"<<endl;
}
}*/
if((strcmp(buffer[j],"***")!=0)&&(strcmp(buffer[j],buffer[k])==0))
{
strcpy(buffer[k],"***");
break;
}
}
}
ofstream in;
in.open("outjazz.txt",ios::trunc); //ios::trunc表示在打开文件前将文件清空,由于是写入,文件不存在则创建
int t;
for(t=3;t<5485;t++)
{
if(strcmp(buffer[t],"***")==0)
continue;
else
in<<buffer[t]<<"\n";
}
in.close();//关闭文件
return 0;
}