C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++字符串截取

C++字符串的截取问题

作者:休息一下接着来

这篇文章主要介绍了C++字符串的截取问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C++字符串截取

按照字符串截取

/**
 * @brief   按照指定的字符串截取字符串
 * @param str  需要截取的字符串
 * @param  pattern  按照该字符串截取
 * @return 截取好的字符串vector
 */
std::vector<std::string> splitStr(std::string str, std::string pattern)
{
    std::string::size_type pos;
    std::vector<std::string> result;
    //扩展字符串以方便操作
    str += pattern;
    int size = str.size();
    for (int i = 0; i < size; i++)
    {
        pos = str.find(pattern, i);
        if (pos < size)
        {
            std::string s = str.substr(i, pos - i);
            result.push_back(s);
            i = pos + pattern.size() - 1;
        }
    }
    return result;
}

按照字符截取

/**
 * @brief   按照指定的字符截取字符串
 * @param str  需要截取的字符串
 * @param  pattern  按照该字符截取
 * @return 截取好的字符串vector
 */
std::vector<std::string> splitStr(std::string str, char pattern)
{
    // 扩展字符串,方便后面进行操作
    str.push_back(pattern);
    std::vector<std::string> result;
    auto iter = str.cbegin();
    auto iter2 = iter;
    for (iter; iter != str.cend(); ++iter)
    {
        if (*iter == pattern)
        {
            result.push_back(string(iter2, iter));
            iter2 = iter + 1;
        }
    }
    return result;
}

C++截取部分字符串(类似python的切片)

1.首先在python中取一个字符串的多少位,使用s[begin:end]。

2.c++中使用一个函数来截取字符串位

头文件:

#include <string> //注意没有.h  string.h是C的标准字符串函数数,c++中一般起名为ctring.  而string头文件是C++的字符串头文件。

函数原型: 

string substr(int pos = 0,int n ) const;

参数说明:    

该函数功能为:返回从pos开始的n个字符组成的字符串,原字符串不被改变

# include <iostream>
# include <string>
using namespace std;
int main()
{
    const string image_name = "0170.bmp";
    print(image_name.substr(0, 4));
    return 0;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文