String 类的实现 以及 Strcpy、Strcat函数的实现
来源:互联网 发布:长征六号 知乎 编辑:程序博客网 时间:2024/05/29 04:04
class Stringg{public: Stringg(const char *str = NULL); Stringg(const Stringg &other); ~Stringg(); Stringg & operator = (const Stringg& other);private: char *m_data;};Stringg::Stringg(const char *str){ if (str == NULL) { m_data = new char[1]; m_data = '\0'; } else { int len = strlen(str); m_data = new char[len+1]; strcpy(m_data, str); }}Stringg::Stringg(const Stringg &other){ int len = strlen(other.m_data); m_data = new char[len+1]; strcpy(m_data, other.m_data);}Stringg::~Stringg(){ delete[] m_data;}Stringg & Stringg::operator = (const Stringg &other){ if (this == &other) return *this; delete[] m_data; int len = strlen(other.m_data); m_data = new char[len+1]; strcpy(m_data, other.m_data); return *this;}
strcpy的实现:
char* strcopy(char* strDest, char* strSrc){ if (strDest == NULL && strSrc == NULL) return 0; char* to = strDest; while((*strDest++ = *strSrc++) != '\0') { ; } return to;}
strcat的实现:
//将源字符串加const,表明其为输入参数 char *strcat(char *strDest, const char *strSrc) { char *address = strDest; //该语句若放在assert之后,编译出错 assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言 while(*strDest) //while(*strDest!=’\0’)的简化形式 { //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,那么strDest将指向'\0'的下一个位置。所以要在循环体内++;因为要是*strDest最后指向该字符串的结束标志’\0’ strDest++; } while(*strDest++ = *strSrc++) { NULL; *p++等价于*(p++)。根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是从右到左,所以就等价于*(p++)了。那么也就是,先将p指针移动到下个p指针所指向元素的地址的下一个地址,然后再对那个地址取值。(*p)++是取p所指向地址的值,然后再将这个值+1 } return address;}
0 0
- String 类的实现 以及 Strcpy、Strcat函数的实现
- strcpy strcat等相关函数的实现
- 字符串函数strcpy,strcat,memcpy的实现
- strlen,strcpy,strcat,strcmp函数的实现
- strcmp、strcat、strcpy、strncpy函数的实现
- strcpy和strcat的实现
- strlen函数 strcpy函数 strcmp函数 strstr函数 strcat函数 memcpy函数 memmove函数 以及字符串反转函数的实现
- 编写函数实现strcat(),strcmp()以及strcpy()的功能
- strcpy函数和string类的实现
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- C基础:strcat,strcmp,memcpy,strcpy等函数的实现
- 几个常用函数的实现strcpy,memcpy,memmove,strcat,strcmp
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- C语言strlen, strcpy, strcmp,strcat函数的实现
- strcat,strcmp,memcpy,strcpy等函数的实现
- 字符串函数的实现(StrLen、StrCpy、StrCat、StrReverse)
- memcpy、strcpy、strncpy、strlen、strcat几个函数的实现
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- C缓冲区(输入输出问题)
- intelle ide整合ssm呕心沥血的经验啊
- 隐藏域的解释,虽然我现在也不知道是啥,开始javascript,加油!
- 1112
- String 类的实现 以及 Strcpy、Strcat函数的实现
- Surf算法特征点检测与匹配
- MATLAB批量导入.dat文件
- Activity详解三 启动activity并返回结果
- Hadoop安装包的目录结构
- ReLU函数简介
- IP数据报的分片与重组
- c_stdlib头文件
- wildcard 的理解