自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
void * memcpy1(void *dest, const void *src, size_t n)
{
assert(dest!=NULL&&src!=NULL); //有效性检测
if(dest == src)
return dest;
else if(dest < src)
{
const char *c_src = static_cast<const char *>(src);
char *c_dest = static_cast<char *>(dest);
while (n--) *c_dest++ = *c_src++;
}
else
{
const char *c_src = static_cast<const char *>(src) + n - 1;
char *c_dest = static_cast<char *>(dest) + n - 1;
while (n--) *c_dest-- = *c_src--;
}
return dest;
}
字符串比较函数:
char *strcpy(char *des, const char *src)
{
assert(des != NULL && src != NULL);
char *pStr = des;
while( (*des++ = *src++) != '\0');
return pStr;
}
字符串比较函数:
int strcmp(const char *des, const char *src)
{
assert(des != NULL && src != NULL);
for (;*des && *src && *des == *src; des++, src++);
return *des - *src;
}
字符串长度函数:
int strlen(const char *pStr)
{
assert(pStr != NULL);
int len = 0;
while (*pStr++ != '\0')
len++;
return len;
}
字符串连接函数:
char *strcat(char *des, const char *src)
{
assert(*des != NULL && *src != NULL);
char *pStr = des;
while (*des != '\0')
des++;
while ((*des++ = *src++) != '\0');
return pStr;
}
字符串查找函数:
char *myStrstr(const char *des, const char *src)
{
assert(des != NULL && src != NULL);
char *d = des;
char *s = src;
for (; d != '\0'; des++)
{
for (d = des, s = src; (s != '\0') && (*d == *s); d++, s++)
NULL;
if (*s == '\0')
return des;
}
return NULL;
}
转载于:https://www.cnblogs.com/llinzuxin/archive/2012/10/23/2950477.html
自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr相关推荐
- C语言库函数的实现(strlen strcpy strcmp strcat strstr)
库函数的实现 strlen strcpy strcmp strcat strstr assert函数 头文件:assert.h 又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的 ...
- C基础--字符串操作函数(strlen,strcpy,strcmp,strcat,strstr,strtok,strchr)
#include <stdio.h> #include <string.h> int main(void) {//char dest[10];//#define NULL (v ...
- 字符串函数实现(strlen,strcpy,strcmp,strcat,strrev)
声明:以下代码可能并非最佳方法,若有错误疑问欢迎提出!!! strlen函数 #include<stdio.h> #include<string.h>int mylen(cha ...
- strlen,strcpy,strcmp,strcat,strncpy,strncmp,strncat
写在前面:本文比较长,覆盖了c语言中较多的字符串函数,作者会先带各位了解标准库对函数的介绍,然后模拟实现相关功能. strlen 求字符串长度 size_t表明返回一个无符号类型的数字,是因为考虑到l ...
- strlen, strcpy,strcmp,strcat,strncpy,strncmp,strncat,strst库函数的详细解析以及模拟实现
- C和指针之字符串简单实现 strcpy、strcat、strstr函数
1.实现strcpy函数 #include <stdio.h>//简单实现strcpy函数 char *my_strcpy(char *des, const char *src) {if ...
- 如何用C语言实现各种字符函数和字符串函数strstr、memcpy、memmove、strlen、strcpy、strcmp、strcat
用C语言模拟实现字符函数与字符串函数 strstr.memcpy.memmove.strlen.strcpy.strcmp.strcat 若使用本文相关代码,还请动手点个赞!!! #define _C ...
- 【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)
https://blog.csdn.net/hanjing_1995/article/details/51539583 strcpy 拷贝源字符串到子字符串,包括'\0'. 代码实现: [cpp] v ...
- c语言 strcpy原型,浅谈C语言中strcpy,strcmp,strlen,strcat函数原型
实例如下: //strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, cons ...
- C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结
1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...
最新文章
- 《小学生都能看懂的快速沃尔什变换从入门到升天教程》(FWT / FMT / FMI)(最最严谨清晰的证明!零基础也能得学会!)
- @卡尔曼滤波 跑通调参
- 5-Qt6 QObjec对象拷贝
- python代码自动补齐插件
- vuejs之【router-link】大全(二)
- bash之read命令
- windows下mongodb安装与使用
- maven 配置远程仓库服务器密码
- R语言数据最大最小归一化
- 程序员的故事 007 程序员是吃青春饭的
- C#—— 身份证验证方法
- Java之美[从蛮荒到撬动地球]之设计模式三
- 项目管理中的里程碑是什么
- STM32F103ZET6+TJA1050 HAL CAN通讯笔记
- 专利撰写教程网站合集
- iphone11各机型对比_三款机型运行速度对比,iPhone11Pro表现如何?
- win10安装graph_tool,在jupyter notebook运行代码
- iOS 集成腾讯云聊天 最新sdk使用方法
- 【2006NOIP普及组】开心的金明 题解
- python 发文测试
热门文章
- 技巧:macOS 在 Finder(访达)中查看文件夹大小
- C++11之 Move semantics(移动语义)(转)
- 双向链表基本实现简单贪吃蛇
- seci-log 1.06 发布 增加全文搜索
- Windows Server 2008 R2之三管理活动目录数据库
- 网易开源云原生日志系统!
- 面试官:谈谈分布式一致性机制,我一脸懵逼。。
- 阿里技术小哥,写了一个“​废话生成器”!火爆内网,演绎了什么叫“阿里味“!...
- 我把SpringBoot的banner换成了美女,老板说工作不饱和,建议安排加班...
- 我面试了我的前领导,他连做我的下属都不配