0
点赞
收藏
分享

微信扫一扫

C语言str族函数源码实现

minute_5 2022-04-16 阅读 78
c语言

文章目录


前言

小白写代码、勿喷

一、strcpy

//strcpy源码
char* StrCpy(char* s1,const char * s2) {   
	while (*s1++=*s2++) {
	}
	return s1;
}

二、strcat

//strcat源码
char* StrCat(char * s1,const char * s2) {
	while (*++s1) {
	}
	while (*s2) {
		*p++ = *s2++;
	}
	return s1;
}

三、strchr

//strchr源码
int StrChr(char * s1,char c) {
	char* p = s1;  //记录首地址
	while (*s1) {    //s1的内容不是'\0'进入循环,也就是没有到结尾就不结束
		if (*s1++ == c) {    //比较
			return s1 - p;   //找到的地址减去首地址,就是所在位置
		}
	}
	return -1;   //没找到返回-1
}

四、strcmp

int strcmp(const char* src, const char* dst)
{
	int ret = 0;
	while (!(ret = *(unsigned char*)src - *(unsigned char*)dst) && *dst)  //两个字符串相减,一样得0并取反 
	{
		++src;
		++dst;
	}
	if (ret < 0)
		ret = -1;
	else if (ret > 0)
		ret = 1;
	return(ret);
}

举报

相关推荐

0 条评论