C++中读取一段文字并按特定字符分词

    技术2024-10-14  61

    1、将句子按照某种特性的词,分开,比如将字符串按照“ ”,“;”“#”“tab”等断开成小句子,代码如下:

    int Sentence_Split(const char* str, std::vector<std::string>* vectWords) {          char seps[]=" ;#    ";//空格,分号,#,tab键

             char *token;

             char * strTemp=new char[strlen(str)+1];//这里要复制,因为要动实参          strcpy(strTemp,str);            token = std::strtok( strTemp, seps );          while(token!=NULL)          {                vectWords->push_back(token);                 token=std::strtok(NULL,seps);          }          delete []strTemp;          return vectWords->size(); }

    2、文档中读取一段文字,并将句首和句尾某种元素去掉,比如:“空格”或者“#”

     char* strFileName="****.txt";  ifstream streamIn;  string strLine;  char   strTemp[100];//用来暂时保存切词的词,不会太长  streamIn.open(strFileName);  if (!streamIn)//判断是否打开成功   return;  vector<string>* vectWords;  char*token,*token2;  while(getline(streamIn,strLine))  {             if(strLine.empty())                   continue;           strLine.erase(0,strLine.find_first_not_of("  ")); //把前面Tab键去掉去掉

              strLine.erase(0,strLine.find_first_not_of("#")); //把字符串前面的#去掉           strLine.erase(strLine.find_last_not_of("#") + 1);//把字符串后面的#去掉

              .........   }

    最新回复(0)