jazz数据集处理

来源:互联网 发布:编程语言执行效率排行 编辑:程序博客网 时间:2024/06/06 08:47
  1. 剔除重复边

  2. 剔除第三列多余的‘1’

  3. c++取出字符串首尾空格

处理代码如下:

#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;}
原创粉丝点击