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

贵阳手机网站制作如何做seo优化

贵阳手机网站制作,如何做seo优化,王野天女明星,微信营销的方法有哪些目录 前言 一、模拟实现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://www.dtcms.com/wzjs/485239.html

相关文章:

  • 网站开发公司人员配置大专网络营销专业好不好
  • 展示型网站设计百度投放平台
  • 指纹锁在什么网站做宣传好免费b站推广网站链接
  • wap网站 微信登录欧洲站fba
  • 在合肥做网站多少钱全网推广平台
  • 赛扶做网站东莞网站建设排名
  • 网站建设制作 南京公司哪家好免费无代码开发平台
  • 重庆信息门户网站流量精灵
  • 网站开发多少钱太原关键词排名提升
  • 微信小程序网站建设小图标素材技术培训学校机构
  • nginx安装wordpress失败四川旅游seo整站优化
  • 中山小榄网站建设seo流量工具
  • 网上开店需要营业执照吗东莞seo外包公司哪家好
  • 手机网站头部代码网站seo诊断技巧
  • 陕西省建设工程质量监督站网站东莞百度快照优化排名
  • 网站开发费 会计科目app拉新项目一手渠道商
  • 阿里云除了做网站还能用来干什么合肥网站
  • 如何站自己做网站最佳bt磁力狗
  • 公众号h5是什么意思seo网站内容优化有哪些
  • thinkphp购物网站开发视频新手怎么做seo优化
  • 无锡哪个网站建设比较好网络营销的特点有哪些特点
  • 网站空间服务站电话免费发布推广的平台有哪些
  • 做网站数据需求分析电脑系统优化软件哪个好用
  • 昆明网站建设首选互动营销的案例及分析
  • 烟台网站排名优化报价北京seo优化诊断
  • 做照明出口的网站天津seo推广优化
  • 商丘市做1企业网站的公司宁波seo快速优化平台
  • wordpress不同背景企业关键词优化价格
  • 烟台市做网站的价格网盘资源大全
  • 用什么网站做查重报告湖南网站定制