当前位置:首页 » 《随便一记》 » 正文

自个实现的字符串函数(用C语言)strlen,strcmp,strcpy,strcat,strstr;_i_Crave的博客

28 人参与  2021年11月22日 10:04  分类 : 《随便一记》  评论

点击全文阅读


一、strlen计算字符串长度函数;

C 库函数 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。

C 库函数 – strlen() | 菜鸟教程 (runoob.com)

手写:(三种方法)

//1.普通计数法
int my_strlen(const char * str)
{
 int count = 0;
 while(*str)
 {
  count++;
  str++;
 }
 return count;
}
//2.递归法
int my_strlen(const char * str)
{
 if(*str == '\0')
  return 0;
 else
  return 1+my_strlen(str+1);
}
//3.指针法
int my_strlen(char *s)
{
   char *p = s;
   while(*p != ‘\0’ )
       p++;
   return p-s;
}

二、strcmp字符串比较函数;

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

C 库函数 – strcmp() | 菜鸟教程 (runoob.com)

手写如下:

int my_strcmp(const char* p1, const char* p2)
{
	assert(p1 && p2);
	while (*p1 == *p2)
	{
		if (*p1 == '\0')
		{
			return 0;
		}
		p1++;
		p2++;
	}
	return *p1 - *p2;
}

三、strcpy字符串拷贝函数;

C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest

需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。

C 库函数 – strcpy() | 菜鸟教程 (runoob.com)

手写如下:

char* my_strcpy(char *dest, const char *src)
{
	assert(dest && src);
	char* ret = dest;
	while (*dest++ == *src++);


	return ret;
}

四、strcat 字符串追加函数;

C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

C 库函数 – strcat() | 菜鸟教程 (runoob.com)

手写如下:

char* my_strcat(char* dest, const char* src)
{
	assert(dest && src);
	char* ret = dest;
	while (*dest)
	{
		dest++;
	}
	while (*dest++ = *src++);
	return ret;
}

五、strstr找子串函数;

C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 '\0'。

C 库函数 – strstr() | 菜鸟教程 (runoob.com)

手写如下:

 char* my_strstr(const char* s1, const char* s2)
{
	assert(s1&&s2);
	if (*s2 == '\0')
		return (char *)s1;
	char* ch1 = (char *)s1, *ch2 , *q;
	while (*ch1)
	{
		ch2 = (char *)ch1;
		q = (char *)s2;
		while (*ch2 && *q && *ch2 == *q)
		{
			ch2++;
			q++;
		}
		if (*q == '\0')
		{
			return ch1;
		}
		ch1++;
	}
	return NULL;
}


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/31156.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 被绝色小姨子陷害,我快顶不住了章节目录_陈精苏若熙无法释怀_小说后续在线阅读_无删减免费完结_
  • 家宴过后,我捉奸了庶妹和我老公无广告_庶妹老公侍卫TOP10_小说后续在线阅读_无删减免费完结_
  • 寝室六个人,她们背着我建五人群必读文_太天真申请书冷笑最新阅读_小说后续在线阅读_无删减免费完结_
  • 开局获得狐仙传承结局+番外_江帆赵雪隐藏剧情_小说后续在线阅读_无删减免费完结_
  • 刀锈春根生,白骨犹温完结全文_卫舟棠棠知意一口气完结_小说后续在线阅读_无删减免费完结_
  • 夫君立筷子定我灾星罪名,我改嫁冷宫皇子后他追悔莫及好评_赵荀孟如安青瑶精心编著_小说后续在线阅读_无删减免费完结_
  • 邻居低素质,而我没素质独家番外_老太太赖皮欣欣超长版_小说后续在线阅读_无删减免费完结_
  • 重生后我转嫁首富瘸腿独子,总裁前夫却疯了一口气看完_妹妹傅云琛沈明辉独家番外_小说后续在线阅读_无删减免费完结_
  • 我拒绝给系花捐款后,全系同学悔疯了在线阅读_小说后续在线阅读_无删减免费完结_
  • 我让位给女友的透视眼竹马,他却说如果能重生再也不来了。虐心反转_玉石林若女友推荐_小说后续在线阅读_无删减免费完结_
  • 相国独子的丫鬟砸坏我的玉佩后,我当场拒婚阅读_玉佩陈郡谢氏全新_小说后续在线阅读_无删减免费完结_
  • 手术时,我看着病人惨死最新试读_淼淼陆知衍姜颜全本完结_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1