博客
关于我
码图:156 扩展String类(C++)
阅读量:378 次
发布时间:2019-03-05

本文共 2359 字,大约阅读时间需要 7 分钟。

扩展String类,引入头文件CString.h,它的内容如下:

#include 
using namespace std;class String {protected: char *mystr; int len;public: String(const char *p) { len = strlen(p); mystr = new char[len + 1]; strcpy(mystr, p); } ~String() { if (mystr != NULL) { delete[] mystr; mystr = NULL; len = 0; } } void showStr() { cout << mystr << endl; }};

实现int IsSubString(int start, const char *str):

int EditString::IsSubString(int start, const char *str) {    int i, j;    for (i = 0; i < len; i++) {        int k = start + i;        for (j = 0; str[j] != '\0'; j++, k++) {            if (str[j] != mystr[k]) break;        }        if (str[j] == '\0') return start + i;    }    return -1;}

实现void EditChar(char s, char d):

void EditString::EditChar(char s, char d) {    int i = 0;    while (mystr[i]) {        if (mystr[i] == s) {            mystr[i] = d;        }        i++;    }}

实现void EditSub(char * subs, char * subd):

void EditString::EditSub(const char *subs, const char *subd) {    int i, j, len_s = strlen(subs), len_d = strlen(subd);    for (i = 0; i < len; i++) {        int k = i;        for (j = 0; subs[j] != '\0'; j++, k++) {            if (subs[j] != mystr[k]) break;        }        if (subs[j] == '\0') {            int m = i + len_s;            while (mystr[m - 1]) {                mystr[m + len_d - len_s] = mystr[m];                m++;            }            m = 0;            while (subd[m]) {                mystr[i + m] = subd[m];                m++;            }            i += (len_d - 1);        }    }}

实现void DeleteChar(char ch):

void EditString::DeleteChar(char ch) {    int i = 0;    while (mystr[i]) {        while (mystr[i] == ch) {            int j = i;            while (mystr[j]) {                mystr[j] = mystr[j + 1];                j++;            }        }        i++;    }}

实现void DeleteSub(const char *sub):

void EditString::DeleteSub(const char *sub) {    int i, j;    for (i = 0; i < len; i++) {        int k = i;        for (j = 0; sub[j] != '\0'; j++, k++) {            if (sub[j] != mystr[k]) break;        }        if (sub[j] == '\0') {            int len = strlen(sub);            int m = i + len;            while (mystr[m - 1]) {                mystr[m - len] = mystr[m];                m++;            }        }    }}

转载地址:http://ivqg.baihongyu.com/

你可能感兴趣的文章
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>