string.h中的一些函数

string.h中的一些函数

strlen()

该函数返回的是字符串的长度,不包含‘\0’。
如果用sizeof的话会算上‘\0’,即会比strlen()大1。
下面是我自己写的与strlen()达到同样功能的函数。
我老师讲,以后企业的笔试大部分都会让你写一个函数原型,即与库中函数达到同样功能的函数;

#include<stdio.h>
#include<assert.h>

int mystrlen(char *str)
{
	assert(str != NULL);
	int i=0;
	while(*str++ !='\0')
	{
		i++;	
	}
	return i;
}

int main()
{
	char a[]="hello world";
	printf("%d\n",mystrlen(a));
	return 0;
}

strcpy()strncpy()

strcpy(str1,str2);将str2复制给str1.
strncpy(str1,str2,n),将str2的前n个字符复制给str1.
注意,strcpy()会把str1所以的内容覆盖掉,而strncpy只是复制几个字符覆盖几个字符。
mystrcpy

#include<stdio.h>
#include<assert.h>

char *mystrcpy(char *dest,const char *src)
{
	assert(dest!=NULL && src!=NULL);
	char *pdest = dest;
	while((*dest++ = *src++) != '\0');
	return pdest;
}

mystrncpy

#include<stdio.h>
#include<assert.h>
#include<string.h>
char *mystrncpy(char *dest,const char *src,size_t n)
{
	assert(dest!=NULL && src!=NULL);
	char *pdest=dest;
	while( n-- >0 && (*dest++ = *src++) !='\0');
	return pdest;	
}

其它的我后续发博客,太长了不好观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值