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 版权协议,转载请附上原文出处链接和本声明。