memset,memcpy 函数

memset 

void *memset(void *str, int c, size_t n)

memset作用是吧n个c字符复制到字符串str的前n个位置:

#include <stdio.h>
#include <string.h>

int main(int argc, char const *argv[])
{
	
	char des[]="this is a string..";
	
	memset(des,'2',6);

	puts(des);

	return 0;
}

输出:

 222222s a string..

memcpy

void *memcpy(void *str1, const void *str2, size_t n)

memcpy作用是:从存储区 str2 复制 n 个字符到存储区 str1 

#include <stdio.h>
#include <string.h>

int main(int argc, char const *argv[])
{
	char src[40];
	char dest[100];

	memset(dest,'\0',sizeof(dest));
	strcpy(src,"this is ----");
	strcpy(dest,src);

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

	return 0;
}

输出:

this is ----

编写my_memcpy:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
void my_strcpy(char *des,const char *str){

	puts("my_strcpy");

	if(str==NULL){
		des=NULL;
		return;
	}
	assert(des!=NULL);
	

	memset(des,'\0',strlen(des)+1);
	for (int i = 0; i <strlen(str); ++i)
	{
		des[i]=str[i];
	}

	puts(des);
}

int main(int argc, char const *argv[])
{
	char src[40];
	char dest[100];

	memset(dest,'\0',sizeof(dest));
	my_strcpy(src,"this is ----");
	my_strcpy(dest,src);

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


	return 0;
}

 C assert()异常处理:

转自:https://www.cnblogs.com/vimsk/archive/2010/12/11/1901698.html

assert()是一个调试程序时经常使用的宏,切记,它不是一个函数,在程序运行时它计算括号内的表达式,如果表达式为FALSE  (0),  程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。   

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值