C/C++实现strcpy和strcat两个功能
strcpy和strcat是string.h头文件中分别实现字符串数组拷贝与拼接功能的函数,详细使用相信大家都了解了,如果还不了解看看实例 C/C++笔试必须熟悉掌握的头文件系列(四)——string.h/cstring就知道怎么使用了。
下面我们直接来看看具体实现:
1 strcpy实现
char* myStrcpy(char* pre, const char* next)
{if (pre == nullptr || next == nullptr) //空指针直接返回{return nullptr;}if (pre == next) // 两者相等也无需拷贝了return pre;while ((*pre++ = *next++) != '\0'); // 依次赋值给主字符数组return pre;
}
上面程序实现了strcpy的程序,实现很简单依次赋值给朱字符数组即可,当遇到next指向字符串结束字符’\0’后,完成赋值并且停止赋值。这样新赋值的’\0’就成了字符数组表示的字符串结尾符,哪怕主字符串pre比next长也会戛然而止。字符串判断不管字符数组存了啥,它只认到’\0’前的数是它的主体核心部分。
2 strcat实现
char* myStrcat(char* pre, const char* next)
{if (pre == nullptr || next == nullptr) // 如果有一个为空指针,直接返回prereturn pre;char* tmp_ptr = pre + strlen(pre); //strlen计算字符数,需要包含都文件string.h,当然也可以自己实现while ( (*tmp_ptr++ = *next++) != '\0'); // 依次接着赋值return pre;
}
上面程序实现了strcat拼接的功能,主要依靠新申请的一个指针先指向主字符数组的尾部,然后依次将另个字符数组字符赋值给后面的空间(可能有些人有疑惑,为什么没有申请额外空间就直接使用后面的空间,实际上这个是简版的写法,所以要求传入指针pre指向的字符数组有足够大的空间,看下面完整程序你就明白了。)
3 主程序
#include<iostream>
#include<string>
#include<string.h>using namespace std;char* myStrcat(char* pre, const char* next)
{if (pre == nullptr || next == nullptr)return pre;char* tmp_ptr = pre + strlen(pre);while ( (*tmp_ptr++ = *next++) != '\0');return pre;
}char* myStrcpy(char* pre, const char* next)
{if (pre == nullptr || next == nullptr){return nullptr;}if (pre == next)return pre;while ((*pre++ = *next++) != '\0');return pre;
}int main()
{char str1[100] = "12345";char str2[20] = "hello world";myStrcat(str1, str2);myStrcpy(str1, str2);printf("%s\n", str1);return 0;
}
个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!
转载请注明出处:http://blog.csdn.net/FX677588/article/details/76702319
C/C++实现strcpy和strcat两个功能相关推荐
- (C语言)常用的字符串函数介绍(strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen)非常详细
理解 strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen这些函数,可以帮助我们更好的对字符串进行操作,做到玩转字符串. 目录 1.s ...
- C语言字符串库函数strcpy,strncpy,strcat,strncat,ctrcmp,strncmp的简介与实现
目录 一.C语言部分字符串库函数的介绍 1.strcpy函数的介绍 2.strncpy函数的介绍 3.strcat函数的介绍 4.strncat函数的介绍 5.strcmp函数的介绍 6.strncm ...
- C语言库函数的实现(strlen strcpy strcmp strcat strstr)
库函数的实现 strlen strcpy strcmp strcat strstr assert函数 头文件:assert.h 又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的 ...
- 【C语言】字符串库函数的解读和模拟实现第一弹(strlen、strcpy、strcat、strcmp、strncpy、strncat 及 strncmp)
目录 一. strlen函数 1.1 strlen函数实现的功能及函数原型 1.1.1 strlen函数实现的功能 1.1.2 strlen的函数原型 1.1.3 strlen实现功能的更进一步解读 ...
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove ================================ 1 strstr 字符 ...
- C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结
1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...
- 淘宝面试-Strcpy与memcpy两函数的经典实现
char *strcpy(char *des, const char *src){ assert((des != NULL) && (src != NULL)); char *add ...
- 比较两个字符串s1和s2的大小,如果s1s2,则输出一个正数;若s1=s2,则输出0;若s1小于s2,则输出一个负数。要求:不用strcpy函数;两个字符串用gets函数读入。
题目描述 比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数:若s1=s2,则输出0:若s1<s2,则输出一个负数.要求:不用strcpy函数:两个字符串用gets函数读入.例 ...
- C语言strcat函数的作用是,实现strcat函数的功能
编程实现strcat函数的功能 #include "stdio.h" char* strcat(char s1[],char s2[]) { int i,j; for(i=0;s1 ...
最新文章
- 用python编写ios应用
- JS 动态添加 onload、onresize、onscroll 事件
- python_ re模块学习
- 量子计算入门-第一部分
- dosbox 伪指令dd为什么会报错_什么是SQL函数?为什么使用SQL函数可能会带来问题?...
- VS2013+VSVIM
- 华为Mate8刷低Android版本,华为mate8怎么刷机 华为mate8刷机方法【图文教程】
- 懵了,Java枚举单例模式比DCL和静态单例要好???
- 设计素材模板|艺术感中国风海报
- oracle如何储存超长汉子_热水器该如何选择?!
- C++11线程库模板
- 如何访问SSH公钥?
- 1066 图像过滤 (15 分)—PAT (Basic Level) Practice (中文)
- 解读什么是ERP企业管理软件?
- Android布局——水滴屏全屏设置
- 大数据技术栈思维导图
- 使用密码查看器查看软件的密码
- 戴尔t3500服务器系统安装,Dell Precision T3500 工作站系统指南
- ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针式时钟
- 佛蒙特州政府将启动区块链保险试点项目