当前位置: 首页 > wzjs >正文

厦门单位网站建设用什么软件做网站设计

厦门单位网站建设,用什么软件做网站设计,网站建设售后服务,青海省网站建设高端目录 前言 一、模拟实现strlen 二、模拟实现strcmp 三、模拟实现strcpy 四、模拟实现strcat 五、模拟实现strstr 总结 前言 这篇文章主要讲解了库函数的模拟实现,包含strcmp,strcpy,strlen,strcat,strstr 一、…

目录

前言

一、模拟实现strlen

二、模拟实现strcmp

三、模拟实现strcpy

四、模拟实现strcat

五、模拟实现strstr

总结


前言

这篇文章主要讲解了库函数的模拟实现,包含strcmp,strcpy,strlen,strcat,strstr


一、模拟实现strlen

    strlen函数用于计算字符串的长度,不包括字符串结束符'\0'。

计算器法:

#include<stdio.h>
#include<string.h>
int my_strlen(char* a) {if (*a == '\0')return 0;int cnt = 0;while (*a++)cnt++;return cnt;
}
int main() {char a1[] = "fjfsdjfsdjsg";int len1 = my_strlen(a1);int len2 = strlen(a1);printf("%d\n", len1);printf("%d\n", len2);return 0;
}

二、模拟实现strcmp

       在C语言中,strcmp函数用于比较两个字符串的大小。其基本原理是逐个比较两个字符串的字符,直到找到不相等的字符或遇到字符串结束符\0。如果两个字符串相等,则返回0;如果第一个字符串大于第二个字符串,则返回正值;反之则返回负值。

#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strcmp(const char* a,const char* b)
{assert(a != NULL);	assert(b != NULL);while ((*a == *b) && (*a != '\n')) {a++; b++;}return *a - *b;
}
int main() {char a1[] = "hellsdjfsdhjjsg";char a2[] = "hello,world";int ret = my_strcmp(a1, a2);if (ret == 0) {printf("两个字符串相等\n");}else if (ret > 0) {printf("第一个字符串大于第二个字符串\n");}else {printf("第一个字符串小于第二个字符串\n");}return 0;
}

        在上述代码中,my_strcmp函数首先使用assert确保输入的字符串不为空。然后,通过一个while循环逐个比较两个字符串的字符。如果字符相等且未到达字符串结束符\0,则继续比较下一个字符。循环结束后,返回两个字符串当前字符的差值。

       在main函数中,我们定义了两个字符串str1str2,并调用my_strcmp函数进行比较。根据返回值,判断并输出两个字符串的大小关系。

重要考虑事项

在实现strcmp函数时,需要注意以下几点:

  • 空指针检查:确保输入的字符串不为空,否则可能会导致程序崩溃。

  • 字符比较:逐个比较字符串的字符,直到找到不相等的字符或遇到字符串结束符\0

  • 返回值:根据两个字符串当前字符的差值返回结果。如果相等返回0,如果第一个字符串大于第二个字符串返回正值,反之返回负值。

三、模拟实现strcpy

       在C语言中,strcpy函数用于将源字符串复制到目标字符串中。我们可以通过逐步优化的代码示例,手动实现这个功能。

       首先,我们可以实现一个基础版本的strcpy函数。这个函数需要两个参数:目标字符串和源字符串。我们使用assert来确保传入的指针不为空,然后使用while循环将源字符串的内容逐个字符地复制到目标字符串中,直到遇到字符串结束符\0

#include<stdio.h>
#include<string.h>
#include<assert.h>
int my_strlen(char* a) {if (*a == '\0')return 0;int cnt = 0;while (*a++)cnt++;return cnt;
}
void my_strcpy(char* a, char* b) {assert(a != NULL);assert(b != NULL);while (*b) {*a = *b;a++; b++;}*a = *b;
}
int main() {char a1[] = "fjfsdjfsdjsg";//int len1 = my_strlen(a1);//int len2 = strlen(a1);//printf("%d\n", len1);//printf("%d\n", len2);char a2[] = "hello,world";my_strcpy(a1, a2);printf("%s\n",a1);printf("%s\n", a2);return 0;
}

四、模拟实现strcat

       在C语言中,strcat函数用于将源字符串追加到目标字符串的末尾。其工作原理是找到目标字符串的结尾(即\0),然后从此处开始将源字符串逐个字符复制到目标字符串中,直到遇到源字符串的结束标志\0

#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<windows.h>
char* my_strcat( char* a,const char* b)
{assert(a != NULL);	assert(b != NULL);char* ret = a;while (*a)a++;while (*a++ = *b++);return ret;
}
int main() {char a1[] = "hellsdjfsdhjjsg";char a2[] = "hello,world";char* ret = my_strcat(a1, a2);char* ret2 = strcat(a1, a2);printf("%s\n", ret);printf("%s\n", ret2);system("pause");return 0;
}

  1. 初始化和断言:首先,定义一个临时变量ret来保存目标字符串的起始地址,并使用assert函数确保传入的指针不为空1。

  2. 找到目标字符串的结尾:通过一个while循环,将dest指针移动到目标字符串的结尾(即\0的位置)。

  3. 复制源字符串:通过另一个while循环,将源字符串的每个字符逐个复制到目标字符串中,直到遇到源字符串的结束标志\0

  4. 返回结果:最后,返回目标字符串的起始地址。

注意事项

  • 目标空间大小:确保目标字符串的空间足够大,以容纳源字符串的内容。

  • 字符串结束标志:源字符串和目标字符串都必须以\0结束

五、模拟实现strstr

       在 C 语言中,strstr 函数用于查找一个字符串(b)在另一个字符串(a)中首次出现的位置。如果找到了,它会返回 a中 b 首次出现的位置的指针;如果没有找到,它会返回一个空指针。

#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<windows.h>
char* my_strstr(char* a, const char* b)
{assert(a != NULL);	assert(b != NULL);const char* s1 = a;const char* s2 = b;const char* p = a;while (*p != '\0') {s1 = p;s2 = b;while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2) {s1++;s2++;}if (*s2 == '\0') {return (char*)p;}p++;}return NULL;
}
int main() {char a1[] = "hellsdjfsdhjjsg";char a2[] = "hello,world";char* ret = my_strstr(a1, a2);if(ret!=NULL)printf("%s\n", ret);else printf("没有找到\n");//system("pause");return 0;
}

       在这个自定义的 My_strstr 函数中,我们首先使用 assert 确保传入的两个字符串指针都不是空指针。然后,我们使用两个指针 s1 和 s2 来遍历a 和 b。如果在 a 中找到了b 的完整匹配,我们就返回 a中匹配的起始位置的指针。如果没有找到匹配,我们就返回一个空指针。

         这种实现方法的关键在于,我们需要在a 中逐个字符地查找 b 的首次出现。我们使用一个循环来逐个检查 a 的每个字符,如果当前字符开始的子字符串不匹配 b,我们就移动到 str1 的下一个字符并重复这个过程。如果我们找到了一个匹配,我们就返回当前的位置。如果我们遍历了整个 a 也没有找到匹配,我们就返回 NULL


总结

关于本篇的内容就结束了,对你有帮助的可以点个赞支持一下


文章转载自:

http://BySjWcqs.rrgqq.cn
http://1MOswUKo.rrgqq.cn
http://C4Q1gpey.rrgqq.cn
http://8gqF2fiq.rrgqq.cn
http://XnOrLZRL.rrgqq.cn
http://BqfiC4Rg.rrgqq.cn
http://nbchK8Gi.rrgqq.cn
http://JVnyrFMd.rrgqq.cn
http://Ei2M16uC.rrgqq.cn
http://g2tELgwh.rrgqq.cn
http://tdY5K0cM.rrgqq.cn
http://pAGUprri.rrgqq.cn
http://kdxDZHJq.rrgqq.cn
http://ClxnXBKC.rrgqq.cn
http://NIKT22Jh.rrgqq.cn
http://kZ1Keusj.rrgqq.cn
http://FLXJ0bpJ.rrgqq.cn
http://jXNcrPxc.rrgqq.cn
http://lDEBtH4J.rrgqq.cn
http://5l9kGVJz.rrgqq.cn
http://qPVC6x6c.rrgqq.cn
http://IrM8l8aQ.rrgqq.cn
http://I2htYZWI.rrgqq.cn
http://ZCGtUkPs.rrgqq.cn
http://Vf2nAvRt.rrgqq.cn
http://4xZWj92i.rrgqq.cn
http://eTrHQqyo.rrgqq.cn
http://cWxWrrOV.rrgqq.cn
http://GtjhpgeO.rrgqq.cn
http://7c040l2x.rrgqq.cn
http://www.dtcms.com/wzjs/676138.html

相关文章:

  • 怎么打帮人做网站开发的广告额尔古纳做网站
  • 各种购物网站大全chrome手机版
  • 关于网站建设营销类文章沧州做网站的专业公司
  • 做土特产的网站有哪些如何给别人做网站赚钱
  • 什么网站可以免费发布招聘信息班级优化大师网页版
  • 怎么去投诉做网站的公司关于学院网站建设的通知
  • 无锡网站建设哪家专业网站建设维护升级
  • 惠州做棋牌网站建设哪家便宜汉堡云虚拟主机
  • 生成短链接的网站抚州市临川区建设局网站
  • 网站优化哪家最专业电子商务网站建设书
  • 招聘网站设计师要求wordpress 主题安装 时间
  • 网页设计主页面东莞seo优化案例
  • 浙江省电子商务网站建设ppt模板免费下载素材简约
  • 自己做的网站出现iis7关键词分析网站
  • 网站平台建设合同模版ps ui做响应式网站要求
  • 做外贸是否需要有自己的网站东光做淘宝网站
  • 中企动力的网站深圳中小企业网站制作
  • 网站备案期间打不开湘西做网站
  • 设计师网站大全网站qq号获取
  • 网站建设部工作职能网页制作免费的模板
  • 网站怎么做搜索网站开发人员的考核
  • 除了亚马逊还有啥网站做海淘企业建网站能不能一次进费用
  • 深圳沙井公司网站建设简述网站建设的基本流程图
  • 如何用群晖nas做网站linux nginx wordpress
  • 提供网站建设小程序制作黑河市网站建设公司
  • 一站式服务理念推广 quot 网站开发 quot
  • 自己做的网站怎么发布到网上校园推广公司
  • 网站正能量晚上不用下载进入免费什么网站做优化最好?
  • 湖南省建设工程造价管理总站网站交互式网站备案
  • 北京住房和建设部网站建设摩托车价格大全