2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > LinuxC语言字符串函数 - memset

LinuxC语言字符串函数 - memset

时间:2022-04-12 21:48:14

相关推荐

LinuxC语言字符串函数 - memset

memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作

头文件:string.h

函数原型:void *memset(void *s, int c, size_t n);

参数说明:将以s为首的存储空间前n字节空间全部替换为参数c指定的数据

返回值:更新后的首地址s

【实例】

#include <memory.h>#include <stdio.h>void main( void ){char buffer[] = "This is a test of the memset function";printf( "Before: %s\n", buffer );memset( buffer, '*', sizeof(buffer)-1 );//这里buffer的大小-1是为了避免将字符串的结尾‘\0’也变成*printf( "After: %s\n", buffer );}

函数实现

第一种:

void* memcpy( void* dest, const void* src, size_t count ){if (count<0){printf("Invalid count number !./n");return (void*)0;}if(src==NULL||dest==NULL)return (void*)0 ;if ((unsigned int)dest==(unsigned int)src){printf("The source is equal with the destanation!./n");return dest;}char* d = (char*)dest;const char* s = (const char*)src;while(count--)*d++ = *s++;return dest;}

另一个实现,和上面类似,转贴高质量C++/C编程指南中的,供参考:

void *memcpy(void *pvTo, const void *pvFrom, size_t size){assert((pvTo != NULL) && (pvFrom != NULL));// 使用断言byte *pbTo = (byte *) pvTo;// 防止改变pvTo的地址byte *pbFrom = (byte *) pvFrom; // 防止改变pvFrom的地址while(size -- > 0 )*pbTo ++ = *pbFrom ++ ;return pvTo;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。