今日所学(函数自我模拟)

简介: 今日所学(函数自我模拟)

一,模拟strlen函数


#include<stdio.h>

int my_strlen(char *ar)

{

   int i = 0;

   while (*ar != '\0')

   {

       i++;

       *ar++;

   }

   return i;

}

int main()

{

   char arr[] = "abcdefg";

       int x = my_strlen(arr);

       printf("%d", x);

       return 0;

}


二,模拟strcat


#include<stdio.h>

char* my_strcat(char* d, char* s)

{

   char* i = d;

   while (*d)

   {

       d++;

   }

   while (*d++ = *s++)

   {

       ;

   }

   return i;

}

int main()

{

   char arr1[20] = "1234567";

   char arr2[] = "hollo";

   my_strcat(arr1, arr2);

   printf("%s", arr1);

   return 0;

}


三,模拟strcpy


#include<stdio.h>

char* my_strcpy(char* d, const char* s)

{

   char* a = d;

   while (*d++ = *s++)

   {

       ;

   }

   return a;

}

int main()

{

   char arr1[] = "1234567";

   char arr2[] = "abcdefg";

   my_strcpy(arr1, arr2);

   printf("%s", arr1);

   return 0;

}


四,模拟strstr


#include<stdio.h>

char* my_strstr(char*d,char*s)

{

   char* s1 = d;

   char* s2 = s;

   char* c = d;

   while (*c )

   {

       s1 = c;

       s2 = s;

       while (*s1 && *s2 && (*s1 == *s2))

       {

           s1++;

           s2++;

       }

       if (*s2 == '\0')

       {

           return c;

       }

       c++;

   }

   return NULL;

}

int main()

{

   char arr1[] = "123456";

   char arr2[] = "56";

   char* p = my_strstr(arr1, arr2);

   if (p==NULL)

   {

       printf("找不到了");

   }

   else

   {

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

   }

   return 0;

}


目录
相关文章
|
7月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
186 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
1月前
|
机器学习/深度学习 人工智能 程序员
大模型时代的思考:小心陷入ChatLLMs构建的蜜糖陷阱-基于人类反馈的间接(反向)驯化-你是否有注意到?
本文探讨了大模型基于人类反馈训练的原理及其潜在风险,特别是大模型在迎合用户需求时可能带来的“蜜糖陷阱”。通过实际案例分析,强调了理性使用大模型的重要性,提出了保持批判性思维、明确人机协作边界、提升人类判断力和创新能力等建议,旨在让大模型真正为人类服务,而不是限制人类思维。
|
4月前
|
Python
从代码中寻找生活的启示
【8月更文挑战第31天】本文通过探索编程的哲学与生活智慧之间的联系,揭示如何从代码的逻辑和结构中汲取对日常生活的深刻理解。以一个简单的Python代码示例为起点,逐步深入探讨编程思维如何帮助我们更好地组织生活、解决问题,并最终实现个人成长。文章旨在启发读者将技术感悟应用于更广泛的人生场景,从而发现编程之外的更多可能性。
|
7月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
一次有趣的学习过程
嗨!大家好,我是小蚂蚁。 今天这篇文章记录的是一次有趣的学习过程,起因是昨天我在学员群里发了这样的一条信息。 这原本是一位学员的需求,想要在游戏中做一个文字逐个出现的打字机效果,因为我暂时还没有写与此相关的教程(也没有考虑过如何实现),所以就把这个问题抛了出来,顺便看一下大家的想法。 没想到的是这下可热闹了,下面记录的就是关于这次有趣的学习的全过程。
92 0
|
编译器 C语言
源于《C陷阱与缺陷》----研究程序死循环问题
所以最后答案应该就是打印了12次xiao tao,然后越界访问出现错误,使arr[10]=0,arr[11]=0了 但最后答案却不是这样。
125 0
|
人工智能 大数据 Scala
函数的必要性和学习方法|学习笔记
快速学习函数的必要性和学习方法。
114 0
函数的必要性和学习方法|学习笔记
|
弹性计算 Linux 网络安全
学习过程中的Q&A
macbook以及linux的操作
103 0
|
算法 关系型数据库 MySQL
形式化验证工具TLA+:程序员视角的入门之道
女娲是飞天分布式系统中提供分布式协同的基础服务,支撑着阿里云的计算、网络、存储等几乎所有云产品。在女娲分布式协同服务中,一致性引擎是核心基础模块,支持了Paxos,Raft,EPaxos等多种一致性协议,根据业务需求支撑不同业务状态机。如何保证一致性库的正确性是一个很大挑战,我们引入了TLA+、Jepsen等工具保证一致性库的正确性。本文即从程序员视角介绍形式化验证工具TLA+。
形式化验证工具TLA+:程序员视角的入门之道
|
分布式计算 前端开发 Java
3 个方法,教你提升程序员的自我价值
3 个方法,教你提升程序员的自我价值
288 0