分类
程序设计

自己整理的几个C++实用函数(陆续更新)

(在苹果系统下,如果文章中的图片不能正常显示,请升级Safari浏览器到最新版本,或者使用Chrome、Firefox浏览器打开。)

自己学习工作中常用的几个C++函数,跟大家分享出来,我会持续更新,以增加和改进函数的。

取子文本:

#include<string>
using namespace std;

string GetSubText(string str,string lstr,string rstr)//取文本中间的子文本
{
    int p_l=str.find(lstr);
    if(p_l<0)return ""; //如果找不到左标识字符串则直接返回空文本
    p_l+=lstr.length();
    int p_r=str.find(rstr);
    if(p_r<0)return str.substr(p_l,str.length()-p_l); //如果找不到右标识字符串则返回左标识字符串之后的所有文本
    return str.substr(p_l,p_r-p_l); //找到之后返回其中的文本
}

 

一次性读取文本文件全部内容:

#include<string>
#include<fstream>
using namespace std;

string ReadTextFile()
{
    filebuf *pbuf;
    ifstream fin;
    long size;
    char * buffer;
    
    fin.open ("text.txt", ios::binary); // 要读入整个文件,必须采用二进制打开
    pbuf=fin.rdbuf(); // 获取fin对应buffer对象的指针
    size=pbuf->pubseekoff (0,ios::end,ios::in); // 调用buffer对象方法获取文件大小
    pbuf->pubseekpos (0,ios::in); //把输入流内存指针调整到0位置
    buffer=new char[size]; // 分配内存空间
    pbuf->sgetn (buffer,size); // 获取文件内容
    fin.close();
    return buffer;
}

 

替换全部子文本:

#include<string>
using namespace std;

void replace_all(std::string & s, std::string const & t, std::string const & w)
{
  string::size_type pos = s.find(t), t_size = t.size(), r_size = w.size();
  while (pos != std::string::npos) { // found   
    s.replace(pos, t_size, w);
    pos = s.find(t, pos + r_size);
  }
}

 

 

版权声明
本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。
本文地址: https://blog.ailemon.net/2017/01/28/cpp-functions/
All articles are under Attribution-NonCommercial-ShareAlike 4.0

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

5 × 4 =

如果您是第一次在本站发布评论,内容将在博主审核后显示,请耐心等待