C++string类部分函数仿写(用C语言实现)
来源:互联网 发布:统计软件spss下载 编辑:程序博客网 时间:2024/06/10 22:32
注意:有指针成员情况下,写构造函数时一定要先分配空间
同时,要写析构函数,手动释放堆空间
#include<iostream>#include<string.h>using namespace std;class stringC{ public://构造 析构 stringC(); stringC(int,char);//重复输出某个字符 stringC(const char*);//输出一串字符 stringC(const char*,int);//拷贝任意长度字符到新字符串 ~stringC(); stringC(stringC&);//比较 int compare(stringC&); int compare(const char*); int compare(int,int,stringC&);//长度 int length(); void Cout();//替换 stringC* replace(int,int,stringC&); stringC* replace(int,int,stringC&,int); private: char* s;};/**************构造 析构 *************/stringC::stringC(){ this->s=NULL;}stringC::stringC(int num,char c){ this->s=new char[num+1]; int i; for(i=0;i<num;i++) s[i]=c; s[i]='\0';}stringC::stringC(const char*s){ this->s=new char[strlen(s)+1]; strcpy(this->s,s);}stringC::stringC(stringC& p){ this->s=new char[strlen(p.s)+1]; strcpy(this->s,p.s);}stringC::~stringC(){ while(this->s!=NULL) { delete [] this->s; this->s=NULL;//注意野指针问题 }}stringC::stringC(const char* p,int num){ this->s=new char[num+1]; int i; strncpy(this->s,p,num);}/***************比较******************/int stringC::compare(int index,int length,stringC& str){ char *p=new char[length+1]; int i; for(i=index;i<index+length;i++) p[i-index]=this->s[i]; p[i-index]='\0'; return strcmp(p,str.s);}int stringC::compare(const char* p){ return strcmp(this->s,p);}int stringC::compare(stringC& p){ return strcmp(this->s,p.s);}/***************长度**************/int stringC::length(){ return strlen(this->s);}void stringC::Cout(){ cout<<s<<endl;}stringC* stringC::replace(int index,int num,stringC& str){//用str内的num个字符,替换自身从index开始的num个字符 int i; for(i=index;i<index+num;i++) { this->s[i]=str.s[i-index]; } return this;}int main(){/* stringC a(5,'c'); a.Cout(); stringC b("hello cmz"); b.Cout(); stringC c(b); c.Cout(); stringC d("hello",2); d.Cout(); stringC a1("hello"); stringC a2("hello"); cout<<a1.compare(a2)<<endl; cout<<a1.compare("hello")<<endl; stringC a3("world hello"); cout<<a3.compare(6,5,a1)<<endl; cout<<a1.length()<<endl; stringC a4("hhhhh"); a1.replace(0,5,a4); a1.Cout();*/ }
阅读全文
0 0
- C++string类部分函数仿写(用C语言实现)
- C函数仿写 JAVA::String操作
- c语言string类函数实现汇总
- c语言string类函数实现汇总
- C语言字符串函数和C++string类中的部分函数的使用
- C语言部分函数原型实现
- c语言数组实现ArrayList部分函数
- c语言 String类函数
- C语言,函数部分
- String函数的模拟实现(c语言)
- 用C语言实现仿TC界面
- 用c语言实现 编写一个函数reverse_string(char * string)
- C语言-文件操作函数(部分)
- 常用string类函数仿写
- C语言部分库函数实现
- 关于C语言函数指针实现部分面相对…
- C语言 - 自定义实现字符串部分复制函数
- c语言string函数详解
- Linux 账户与组基础命令操作
- js数组的应用
- Struts2中利用token标签实现防止表单重复提交
- Linux文件系统
- PHP基础教程-10 算术运算符
- C++string类部分函数仿写(用C语言实现)
- Python3.6实现计算器的基本功能
- 1007. 素数对猜想
- mfc gid画图 孙鑫 第4章
- 集合Arraylist
- python requests 请求 https SSL 报错
- Pytorch入门学习(七)---- 数据加载和预处理的通用方法
- 搭建服务器环境
- Machine Learning In Action