自己实现memcpy,strcpy与strncpy
内存拷贝函数
//实现拷贝不重叠的内存块
void* memcpy1(void* dst,const void* src,size_t count)
{
char* pTo = (char*)dst;
char* pFrom = (char*)src;
assert(dst != NULL && src != NULL);
assert(pTo >= pFrom+count || pTo <= pFrom-count);//防止内存重叠(over lap)
while(count-- > )
{
*pTo++ = *pFrom++;
}
return dst;
}
#include<stdio.h> char* mystrcat(char* str1,char* str2)//连接
{
char* p=str1;
while (*str1 !='\0')
{
str1++;
}
// while(*str1++);
while (*str2 != '\0')
{
*str1=*str2;
str1++;
str2++;
}
// while (*str1++ = *str2++);
*str1='\0';
return p;
} char* mystrcpy(char* str1,char* str2)
{
char*p = str1;
while (*str1++ = *str2++);
return p;
} char* mystrncpy(char* str1,char* str2,int n)
{
char* p=str1;
for (;*str2!='\0'&&n>;n--)
{
*str1 = *str2;
str1++;
str2++;
}
*str1='\0';
return p;
} int mystrcmp(char* str1,char* str2)
{
while()
{
if(*str1==*str2 && *str1 !='\0')
{
str1++;
str2++;
}
else if (*str1==*str2 && *str1=='\0')
return ;
else if(*str1>*str2)
return ;
else
return -;
}
}
字符串拷贝
#include <iostream>
#include <string.h> using namespace std; char* Mystrcpy(char* dst,const char* src)
{
if(dst == NULL || src == NULL)
return NULL;
int i = ;
for(i = ;src[i] != '\0';i++)
{
dst[i] = src[i];
}
dst[i] = '\0';
return dst;
}
char* Mystrncpy(char *dest, const char *src, size_t n)
{
if(dest == NULL || src == NULL)
return NULL;
int i;
for (i = ; i < n && src[i] != '\0'; i++)
dest[i] = src[i];
for ( ; i < n; i++)
dest[i] = '\0'; return dest;
} int main()
{
char dst[];
char dst1[];
char src[] = "hello";
Mystrcpy(dst,src);
cout << dst << endl;
Mystrncpy(dst1,src,);
cout << dst1 << endl;
return ;
}
//结果:
/*
hello
hel
*/
自己实现memcpy,strcpy与strncpy的更多相关文章
- strcpy、strncpy与memcpy的区别与使用方法
strcpy.strncpy.memcpy这三个C语言函数我们在主机代码编写中会很频繁的使用到,但是三个函数的区别.使用时该注意什么还是有必要说下的. 本文参考<C 标准库>编写. 一.函 ...
- strcpy、strncpy、memcpy的区别
一.strcpy.strncpy区别 struct gpInfo { char gpcode[9]; char gpName[50]; }; string gpstr = "SZ000001 ...
- [置顶]
strcpy()与strncpy()的区别
头文件:#include <string.h> strcpy() 函数用来复制字符串,其原型为: char *strcpy(char *dest, const char *src); [参 ...
- C语言 - strcpy和strncpy的编程实现及总结
一.字符串的strcpy与strncpy函数 1.编程实现strcpy函数(笔试很容易考到) 要求: 原型:char *stpcpy(char *strDest,char *strSrc); 头文件: ...
- c常用函数-strcpy和strncpy
strcpy和strncpy strcpy在脚本开发中经常用到,例如处理参数等,它的作用是把一个字符串复制到另一个字符串中. strncpy的作用是把一个字符串中的指定长度复制到另一个字符串中,如果指 ...
- strcpy、strncpy 和安全的strncpy_s
strcpy和strncpy摘于linux 内核源码的/lib/string.c char *self_strcpy(char *dest, const char *src) { char *tmp ...
- c语言中几个常见的库函数strlen、strcmp、strcat、strcpy、strncpy、memset、memcpy、memmove、mmap
1.strlen() 1)计算给定字符串的长度,不包括’\0’在内 unsigned int strlen(const char *s) { assert(NULL != s);//如果条件不满足,则 ...
- strcpy、strncpy、strlen、memcpy、memset、strcat、strncat、strcmp、strncmp,strchr
1.strcpy #include<stdio.h> #include<assert.h> char *mystrcpy(char *dest, const char *src ...
- strcpy()、strncpy()和memcpy()对比
strcpy()函数声明:char *strcpy(char *dest, const char *src)返回参数:指向最终的目标字符串 dest 的指针.注意事项:只能复制char类型的字符数组, ...
随机推荐
- sublime text3 的汉化
仅是记录自己的处理过程,以防遗忘: 感谢作者:https://www.jianshu.com/p/ecc241f22ed5
- el-date-picker 快捷日期简单计算
const oneDaySeconds = 3600 * 1000 * 24 pickerOptions: { shortcuts: [ { text: '今天', onClick(picker) { ...
- Item 13: 比起iterator优先使用const_iterator
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 STL中的const_iterator等价于pointers-to ...
- Beta阶段团队成员贡献分分配规则
Beta阶段团队成员贡献分分配规则 Alpha阶段贡献分分配有些负责,在这里进行一些修改: 对任务完成得分部分进行了简化 对发现bug的惩罚措施进行了修改 移除了优化得分,不鼓励修改他人代码 移除了帮 ...
- Cat8 八类网线是什么?与Cat5、Cat6、Cat7网线的区别?
若您身处于网络通信行业,相信您应该了解一些以太网线缆,比如说超五类网线.六类网线和七类网线等等.但是您知道Cat8 八类网线 是什么吗?它与五类网线.六类/超六类网线及七类/超七类网线有着怎么样的区别 ...
- 深度学习之概述(Overview)
2016年被称为人工智能的元年,2017年是人能智能应用的元年:深度学习技术和应用取得飞速发展:深度学习在互联网教育场景也得到广泛应用.本文主要介绍机器学习及深度学习之定义及基本概念.相关网络结构等. ...
- 福州大学软件工程1816 | W班 第8次作业[团队作业,随堂小测——校友录]
作业链接 团队作业,随堂小测--校友录 评分细则 本次个人项目分数由两部分组成(博客分满分40分+程序得分满分60分) 博客和程序得分表 评分统计图 千帆竞发图 总结 旅法师:实现了更新,导出,查询, ...
- html总结:背景图片拉伸
两种方法: ⑴推荐方法 <style>body {background-image:url(images/backimage.jpg);background-size:cover;}< ...
- LINUX操作系统(centos6.9)安装与配置
LINUX操作系统(centos6.9)安装与配置_百度经验 https://jingyan.baidu.com/article/acf728fd6bdba1f8e510a3f7.html cento ...
- js-跨域源资源共享(CORS)
### 一. CORS(Cross-Origin Resource Sharing,跨域源资源共享) 基本思想:使用自定义HTTP头部让浏览器与服务器进行沟通 发送请求时,需附加一个Origin头部 ...