string和c字符串(char*, char[])

  • Post author:
  • Post category:其他


string和c字符串(char*, char[])

1. 前言:

在写一个字符串分隔函数时遇到了关于string和c字符串的问题,函数如下:

//从一行中分隔出单词
vector<string> split(const string &line) {
    vector<string> words;
    auto word_begin = line.begin();
    auto iter = line.begin();
    while(iter != line.end()) {
        //单词内容
        if(*iter >= 'A' && *iter <= 'Z'){
            iter++;
            continue;
        }
        else if(*iter >= 'a' && *iter <= 'z'){
            iter++;
            continue;
        }
        else if(*iter >= '0' && *iter <= '9'){
            iter++;
            continue;
        }
        else if(*iter == '@' || *iter == '_' || *iter == '.'){
            iter++;
            continue;
        }
        else{
  //分隔符
            if(iter != word_begin) {
  //存入单词
                string tmp;
                tmp.insert(tmp.begin(), word_begin, iter);
                words.push_back(tmp);   //insert插入不包括迭代器指向的最后一个元素
                iter++;                 //即插入[word_begin,iter)范围内的元素
                word_begin = iter;      //要保存部分分隔符就注释iter++
                }i                      //不要让其跳过分隔符
            else{ //非空格存入,空格跳过,递增迭代器
                //if(*iter != ' '){
   
         



版权声明:本文为Fglesky原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。