字符串操作strlen,strcpy,strcat的函数原型

闲来无聊,写一写字符串操作函数strlen,strcpy, strcat的函数原型,听说之前微软还面试过strcpy这个函数的函数原型。看起来简单,但是暗藏玄机~~~~~。

首先,strlen()(先这么写着吧)函数,求字符串的长度。

既然是长度,那返回类型肯定是整型。但是既然长度不能为负,那就定义一个无符号型unsigned int。

当然还要传参,参数类型为char* 指针类型。但是为了防止字符串在函数体内被修改。那么就定义为const char*类型。

函数声明为:unsigned int strlen(const char*);代码如下:

unsigned int strlen_t(const char* str)
{
	assert(str != NULL); //字符指针为空,则终止程序
	unsigned int length = 0;
	while (*str++ != '\0')
	{
		length++;
	}
	return length;
}

这个函数原型并不难写。主要是首先检查str是否为空。这里使用了断言assert(),如果str为空,则终止程序执行。

再来看看strcpy()函数。复制字符串内容。

首先呢,还是考虑返回类型,这里可以是void,但是考虑到嵌套(就是这样滴:strcpy(strcpy(str1,str2),str3)),所以使用char*作为返回类型。

函数参数,既然是复制,所以需要两个形参,这里认为第二个字符串内容copy到第一个,所以第一个形参类型为char*,第二个为const char*。

函数声明为:char* strcpy(char* str1,const char* str2);代码如下。

char* strcpy_t(char* str1, const char* str2)
{
	assert(str1 != NULL&&str2 != NULL);
	char* tmp = str1;
	while ((*str1++ = *str2 ++)!= '\0')
	{
		;
	}
	return tmp;
}
剩下一个strcat(),不写了。。。。。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值