C++字符串的截取问题

 更新时间:2023年08月08日 10:59:23   作者:休息一下接着来  
这篇文章主要介绍了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;

参数说明:    

  • 参数1:pos是必填参数
  • 参数2:n是可参数,表示取多少个字符,不填表示截取到末尾

该函数功能为:返回从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;
}

总结

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

相关文章

  • VisualStudio2022提交git代码的方法实现

    VisualStudio2022提交git代码的方法实现

    本文主要介绍了VisualStudio2022提交git代码的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • C++实现LeetCode(692.前K个高频词)

    C++实现LeetCode(692.前K个高频词)

    这篇文章主要介绍了C++实现LeetCode(692.前K个高频词),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • VSCode同时更改所有相同的变量名或类名的图文教程

    VSCode同时更改所有相同的变量名或类名的图文教程

    这篇文章主要介绍了VSCode同时更改所有相同的变量名或类名,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C++11 并发指南之std::mutex详解

    C++11 并发指南之std::mutex详解

    这篇文章主要介绍了C++11 并发指南之std::mutex详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • C语言实现数据结构迷宫实验

    C语言实现数据结构迷宫实验

    这篇文章主要为大家详细介绍了C语言实现数据结构迷宫实验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C++类与对象深入之静态成员与友元及内部类详解

    C++类与对象深入之静态成员与友元及内部类详解

    朋友们好,这篇播客我们继续C++的初阶学习,现在对我们对C++的静态成员,友元,内部类知识点做出总结,整理出来一篇博客供我们一起复习和学习,如果文章中有理解不当的地方,还希望朋友们在评论区指出,我们相互学习,共同进步
    2022-06-06
  • select函数实现高性能IO多路访问的关键示例深入解析

    select函数实现高性能IO多路访问的关键示例深入解析

    这篇文章主要为大家介绍了select函数实现高性能IO多路访问的关键示例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • C语言数组元素的循环移位方法

    C语言数组元素的循环移位方法

    今天小编就为大家分享一篇C语言数组元素的循环移位方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C++中的explicit关键字实例浅析

    C++中的explicit关键字实例浅析

    在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上,再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。接下来给大家介绍 C++中的explicit关键字,需要的朋友可以参考下
    2017-03-03
  • C++全面覆盖内存管理知识讲解

    C++全面覆盖内存管理知识讲解

    本章主要介绍C语言与C++的内存管理,以C++的内存分布作为引入,介绍C++不同于C语言的内存管理方式(new delete对比 malloc free),感兴趣的朋友来看看吧
    2022-06-06

最新评论