zoukankan      html  css  js  c++  java
  • string字符串分词

    这个问题来自于input为用','分隔开的字符串,如"1,-8,1,3"。因为有'-',所以不能单个字符处理(除非多写一个if)。以下将该string的逗号去掉,并保存在vector中。

    使用strtok分

    vector<string> split(string orignal, string del){
      vector<string> ans;
      char *tmp = new char[orignal.size+1];
      strcpy(tmp,orignal.c_str());
      char* t = strtok(tmp,del.c_str());
      while(t!=NULL){
        ans.push_back(string(t));
        t=strtok(NULL,del.c_str());
      }
    delete []tmp;
    return ans;
    }
    

    这几行代码中需要注意的问题:

    1. string转换为char型数组。比如string = "abc",使用cc=ss.toCharArray()则cc = 'a','b','c'。后面是没有结束标志''的。故使用strcpy进行操作。
    2. strtok是c字符串的处理函数,传入的都是char *的字符串(首地址)。第一个参数为待分词的字符串,第二个参数为delimiter,两个都是字符串,必须以''结束。返回值是找到的字符串的首地址。
    3. strtok会将原始的字符串保存在函数中,若持续调用,后续第一个参数传入NULL。
    4. string类向字符串转化:orignal.c_str();
    5. 申请的tmp要delete掉,防止内存泄漏;

    使用正则表达式分

    教程:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
    分词符号表(Regular expression syntax chearsheet):
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Cheatsheet

  • 相关阅读:
    whoami
    w
    id
    su
    chpasswd
    chage
    password
    scrapy框架中Download Middleware用法
    scrapy框架持久化存储
    scrapy框架中Item Pipeline用法
  • 原文地址:https://www.cnblogs.com/maxwell-maxwill/p/15401165.html
Copyright © 2011-2022 走看看