#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <assert.h>

//memcpy:按字节复制

原型:extern void* memcpy(void *dest,void *src,unsigned int count)

//功能:由src所指内存区域复制count个字节到dest所指的内存区域;

//同strcpy

void *memcpy_su(void *dest, void *src, unsigned int count)

{

assert ((dest!=NULL)&&(src!=NULL));

char* bdest = (char*)dest;

char* bsrc = (char*) src;

while(count-->0)

*bdest++ = *bsrc++;

return dest;

}

//strcpy:复制字符串,遇到’\0’就结束

//原型:extern char *strcpy(char *dest,char *src)

//功能:把src所指由’\0’结束的字符串复制到dest所指的数组中;

//说明:src和dest所指内存区域是不可以重叠的且dest必须有足够的空间来容纳字符串。返回dest指针。

char *strcpy_su(char *dest,char *src)

{

assert((dest!=NULL)&&(src!=NULL));

char *address = dest;

while((*dest++=*src++)!='\0')

continue;

return dest;

}

//memset:设置buffer所指的内存区域的前count个字节,用字符c来代替

//原型:extern void *memset(void *buffer,int c,int count);

void *memset_su(void *buffer, int c, int count)

{

assert ((buffer!=NULL));

char* buffer2 = (char*)buffer;

while(count-->0)

*buffer2++ = c;

return buffer;

}

void main()

{

char str1[100]="abchjhgjghjgjgh";

char str2[50]="efghdfkdjf";

strcpy(str1, str2);

printf("%s\n",str1);

char a[3];

memset(a, 'a', sizeof(a)-1);

memset(&a[2], '\0',1);

printf("%s\n",a);

memcpy(str1, str2, strlen(str2));

printf("%s\n",str1);

}

C++:memset ,memcpy 和strcpy 的根本区别!的更多相关文章

  1. memmove、memcpy、strcpy、memset的实现

    memmove.memcpy.strcpy.memset 原型为: void *memmove( void* dest, const void* src, size_t count ); char*  ...

  2. memset memcpy函数

    memset 函数 1.其头文件为: #include<memory> 或者#include<string> 2.原型    看清是对每个字节,不是其类型 void *mems ...

  3. C的memset,memcpy,strcpy 的区别 及memset memcpy memmove源码

    extern void *memcpy(void *dest,void *src,unsigned int count);#include <string.h>   功能:由src所指内存 ...

  4. memset,memcpy,strcpy的使用与区别

    1.memset 原型:   extern void *memset(void *buffer, int c, int count); 功能:   把buffer所指内存区域的前count个字节设置成 ...

  5. memcpy 与strcpy的区别

      C/C++中mencpy的代码实现:https://www.cnblogs.com/goul/p/10191705.html C/C++中strcpy的代码实现:https://www.cnblo ...

  6. memcpy和strcpy的区别

    strcpy和memcpy主要有以下3方面的区别. 复制的内容不同.strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组.整型.结构体.类等. 复制的方法不同.strcpy不需要指 ...

  7. C的memcpy和strcpy的区别

    strcpy是拷贝字符串,以\0为标志结束(即一旦遇到数据值为0的内存地址拷贝过程即停止) strcpy的原型为 char *strcpy(char *dest, const char *src) 而 ...

  8. memset,memcpy,strcpy

    http://www.cppblog.com/junfeng568/archive/2006/03/11/4022.html

  9. memset,memcpy,memcmp用法

    void* memset(void *s, int ch, size_t n); 将s所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ASCII值. 例如:memset(lpMyStruct ...

随机推荐

  1. Linux串口调试

    shell方式 1.使用minicon -s配置串口并保存: 2.使用setserial /dev/ttyUSB0 -a等查看串口配置: 3.接收侧cat /dev/ttyUSB0等待串口输出: 4. ...

  2. Linear Regreesion

       3.似然函数:我是这么理解的,比如说我们知道某个X的概率分布密度函数,但是这个概率分布有未知的参数,但是我想得到这个未知的参数θ,然后我们就通过很多个已知的变量,把这些概率分布密度函数乘起来,这 ...

  3. cygwin设置中文

    cygwin\home\username\.bashrc # 让ls和dir命令显示中文和颜色 alias ls='ls --show-control-chars --color' alias dir ...

  4. Linux内存寻址之分页机制

    在上一篇文章Linux内存寻址之分段机制中,我们了解逻辑地址通过分段机制转换为线性地址的过程.下面,我们就来看看更加重要和复杂的分页机制. 分页机制在段机制之后进行,以完成线性—物理地址的转换过程.段 ...

  5. Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...

  6. XXX 用户 is not in the sudoers file. This incident will be reported 的问题解决方案

    说的是,这种问题,是出现在ubuntu系统里. root@SparkSingleNode:/usr/local/jdk# pwd /usr/local/jdk root@SparkSingleNode ...

  7. mysql常见优化,更多mysql,Redis,memcached等文章

    mysql常见优化 http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758058.html 更多mysql,Redis,memcached等文 ...

  8. PC-飞起来!我的Windows XP——五步快速优化Windows XP

    虽然Microsoft的 Vista已经发售了快一年,但国内大部分系统用户仍使用着目前堪称完美的Windows XP.与以往的Windows操作系统一样,新安装的Windows XP可能还不在最佳状态 ...

  9. [Git]git常用命令总结

    git clone url 将远程库复制到本地 git status 查看本地库的状态 git add filename.filetype 将库中被修改的文件标记为添加状态 git diff 查看库中 ...

  10. PAT 07-图6 旅游规划 (25分)

    有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条路径都是最短的,那么需要输出最便 ...