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

杭州app开发价格表西安seo报价

杭州app开发价格表,西安seo报价,国内做网站用的程序,蔡甸做网站文章目录 🚀前言🚀库函数strlen✈️strlen的模拟实现 🚀库函数strcpy✈️strcpy的模拟实现 🚀strcmp✈️strcmp的模拟实现 🚀strstr✈️strstr的模拟实现 🚀strcat✈️strcat的模拟实现 🚀前言 …

请添加图片描述

文章目录

  • 🚀前言
  • 🚀库函数strlen
    • ✈️strlen的模拟实现
  • 🚀库函数strcpy
    • ✈️strcpy的模拟实现
  • 🚀strcmp
    • ✈️strcmp的模拟实现
  • 🚀strstr
    • ✈️strstr的模拟实现
  • 🚀strcat
    • ✈️strcat的模拟实现

🚀前言

今天阿辉将为大家介绍字符串库函数strlenstrcpystrcmpstrstrstrcat的使用以及模拟实现,关注阿辉不迷路哦 😘 ,内容干货满满😋,接下来就跟着阿辉一起学习吧👊

🚀库函数strlen

库函数strlen是专门求字符串长度的库函数,strlen只能求字符串长度且要求字符串末尾须有\0,返回值长度不包括\0
strlen的函数声明

size_t strlen(const char* src);
返回值为size_t类型
接受一个字符串的首元素地址,即可返回字符串长度

例子:

#include<stdio.h>
#include<string.h>int main()
{char* a = "abcdef";`//末尾有\0char c[] = { 'a','b','c','d','e','f' };//末尾无\0printf("%zd\n", strlen(a));printf("%zd\n", strlen(c));return 0;
}

输出:
在这里插入图片描述
上图我们可以看到一个输出6而一个却是42,就是因为常量字符串a末尾有\0而字符串数组c末尾无\0,而库函数strlen计算的长度是从字符串首元素到\0之间的元素个数,若字符串末尾无\0strlen则会一直向后找到\0位置然后返回。在C语言中\0堪称字符串的灵魂,后面几个函数会让大家有更深的体会。

✈️strlen的模拟实现

铁子们,咱们直接代码以及详解奉上👇

size_t my_strlen(const char* src)
{assert(src != NULL);//断言判断传入指针不为空size_t ret = 0;//记录字符串长度,作为返回值while (*src++)//这句代码下面单独解释{ret++;}return ret;
}

关于while(*src++)这句代码,因为后置++的优先级更高所以src++,但是又因为后置++实现使用后++,所以*src++这个表达式的值是*src然后src再加1,然后当指针src偏移到\0位置时while循环就停止了因为\0的本质就是0

🚀库函数strcpy

库函数strcpy是用来用来拷贝字符串的
strcpy的函数声明:

char* strcpy(char* dest, const char* src);
把从src地址开始到\0的字符串复制到以dest开始的地址空间
返回值为拷贝位置起始地址

注意:

  • 将源指向的 C 字符串复制到目标指向的数组中,包括终止空字符(并在该点停止)
  • 源字符串必须以 ‘\0’ 结束。
  • 会将源字符串中的 ‘\0’ 拷贝到目标空间。
  • 目标空间必须足够大,以确保能存放源字符串。
  • 目标空间必须可变

例子:

int main()
{char a[] = "abcd";char b[10] = { 0 };strcpy(b, a);printf("%s",b);return 0;
}

输出:

abcd

✈️strcpy的模拟实现

char* my_strcpy(char* dest, const char* src)
{char* ret = dest;//记下目标位置起始地址assert(dest && src);//断言判断传入的指针不为空while (*dest++ = *src++){;}return ret;//返回目标位置起始地址
}

*dest++ = *src++这段代码可以理解为先进行*dest = *src ,然后dest = dest + 1; src = src + 1,当src指向\0时,\0赋给*dest然后跳出循环

🚀strcmp

库函数strcmp的函数声明:

int strcmp(const char* str1, const char* str2);

strcmp是用来比较字符串大小的函数,但并非是以字符串长度比较的,而是从两个字符串的起始位置开始,一一对应地进行比较,如果它们彼此相等,则继续以下对,直到字符不同或达到\0,字符不同时比较的是ASII值大小
返回值:

  • 第一个字符串大于第二个字符串,则返回大于0的数字
  • 第一个字符串等于第二个字符串,则返回0
  • 第一个字符串小于第二个字符串,则返回小于0的数字

例子:

int main()
{char a[] = "adc";char b[] = "abcd";int ret = strcmp(a, b);printf("%d ", ret);return 0;
}

输出:

1

请添加图片描述

✈️strcmp的模拟实现

int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);while (*str1 == *str2){if (*str1 == '\0')//两字符串相等,同时指向字符串末尾的\0return 0;str1++;str2++;}return *str1 - *str2;//不等位置相减
}

🚀strstr

库函数strstr的函数声明:

char* strstr(const char* str1, const char* str2);

strstr函数是用来判断主串str1中是否存在子串str2,如果存在则返回str1中第一次出现子串的起始位置地址,否则返回NULL
阿辉作图给大家展示一下:
请添加图片描述

int main()
{char a[] = "abcdsfejsl";char b[] = "dsfe";printf("%s", strstr(a, b));return 0;
}

输出:

dsfejsl

因为返回的是主串中子串起始位置地址,上述代码中也就是d位置的地址,用%s打印就是dsfejsl这一段

✈️strstr的模拟实现

char* my_strstr(const char* dest, const char* src)
{assert(dest && src);//断言判断不为空char* ret = dest;//ret作返回值,记录主串下一个起始比对位置char* p = src;//记录子串的起始位置if (*src == '\0')//子串为空直接返回主串{return ret;}while (*dest)//遍历到主串\0位置跳出循环{//从主串起始比对位置与子串一一比对while (*dest++ == *src++)//不相等时跳出循环{if (*dest == '\0')//当主串遍历到\0位置还进来,说明子串也到末尾\0位置了,直接返回主串起始比对位置{return ret;}}if (*src == '\0')//跳出循环时,src已到\0位置说明主串中找到子串,返回主串起始比对位置{return ret;}dest = ++ret;//上述if都没进去说明该主串起始比对位置找不到子串,++ret记录下一个起始比对位置,并把值赋给dest,从下一个起始比对位置开始遍历src = p;//src返回子串起始位置}return NULL;//上述都为返回说明找不到,返回空
}

铁子们不懂的话,下面这幅图还有解释:
请添加图片描述

🚀strcat

库函数strcat的函数声明:

char* strcat(char* dest, const char* src);

strcat库函数是用来把src所指向的字符串(包括\0)复制到dest所指向的字符串后面(删除*dest原来末尾的\0)。要保证*dest足够长,以容纳被复制进来的*src*src中原有的字符不变。返回指向dest的指针
例子:

int main()
{char a[20] = "abc";char b[] = "dsfe";printf("%s\n", strcat(a, b));return 0;
}

输出:

abcdsfe

✈️strcat的模拟实现

char* my_strcat(char* dest, const char* src)
{assert(dest && src);//断言判断不为空char* ret = dest;//记录起始地址作为返回值while (*dest)//找到目标字符串\0位置{dest++;}while (*dest++ = *src++){;}return ret;
}

while (*dest++ = *src++)这段代码前面大家见得多了,实在不理解可以自己敲出来试试,这里阿辉复制粘贴一下😘
*dest++ = *src++这段代码可以理解为先进行*dest = *src ,然后dest = dest + 1; src = src + 1,当src指向\0时,\0赋给*dest然后跳出循环


到这里,阿辉今天对于C语言中部分字符函数的分享就结束了,希望这篇博客能让大家有所收获, 如果觉得阿辉写得不错的话,记得给个赞呗,铁子们的支持是我创作的最大动力🌹
请添加图片描述


文章转载自:
http://fortis.c7507.cn
http://teletherapy.c7507.cn
http://gorgonia.c7507.cn
http://overcapacity.c7507.cn
http://yetorofu.c7507.cn
http://tabour.c7507.cn
http://cronus.c7507.cn
http://infractor.c7507.cn
http://playday.c7507.cn
http://cerci.c7507.cn
http://evictee.c7507.cn
http://whangarei.c7507.cn
http://masterdom.c7507.cn
http://bemoan.c7507.cn
http://computation.c7507.cn
http://assaultive.c7507.cn
http://leftward.c7507.cn
http://sheetrock.c7507.cn
http://encephalopathy.c7507.cn
http://starchiness.c7507.cn
http://expansionism.c7507.cn
http://lawbreaking.c7507.cn
http://eupnea.c7507.cn
http://illusionism.c7507.cn
http://titanium.c7507.cn
http://fagot.c7507.cn
http://diatonicism.c7507.cn
http://glandes.c7507.cn
http://spastic.c7507.cn
http://waylay.c7507.cn
http://showmanship.c7507.cn
http://crossite.c7507.cn
http://autobiography.c7507.cn
http://apterous.c7507.cn
http://stateliness.c7507.cn
http://antimeric.c7507.cn
http://detract.c7507.cn
http://nus.c7507.cn
http://linty.c7507.cn
http://horniness.c7507.cn
http://busier.c7507.cn
http://impermanency.c7507.cn
http://weanling.c7507.cn
http://paragon.c7507.cn
http://officiate.c7507.cn
http://leathery.c7507.cn
http://macroscale.c7507.cn
http://gentility.c7507.cn
http://radiosensitivity.c7507.cn
http://cachinnate.c7507.cn
http://neolith.c7507.cn
http://mannikin.c7507.cn
http://unijunction.c7507.cn
http://jolo.c7507.cn
http://plumbum.c7507.cn
http://sinophobia.c7507.cn
http://restauratrice.c7507.cn
http://progression.c7507.cn
http://sumptuously.c7507.cn
http://readme.c7507.cn
http://frosted.c7507.cn
http://numinous.c7507.cn
http://objectivate.c7507.cn
http://parent.c7507.cn
http://ogasawara.c7507.cn
http://performing.c7507.cn
http://phylloxera.c7507.cn
http://exoatmosphere.c7507.cn
http://colpitis.c7507.cn
http://doubled.c7507.cn
http://taenicide.c7507.cn
http://matting.c7507.cn
http://photovoltaic.c7507.cn
http://graben.c7507.cn
http://fazenda.c7507.cn
http://chorine.c7507.cn
http://aym.c7507.cn
http://visit.c7507.cn
http://nonparticipator.c7507.cn
http://cofunction.c7507.cn
http://laudable.c7507.cn
http://pecuniary.c7507.cn
http://foggage.c7507.cn
http://gramercy.c7507.cn
http://russ.c7507.cn
http://tunisian.c7507.cn
http://resolve.c7507.cn
http://strophiole.c7507.cn
http://enos.c7507.cn
http://proletariate.c7507.cn
http://megaron.c7507.cn
http://tinwork.c7507.cn
http://impolitic.c7507.cn
http://parvulus.c7507.cn
http://casse.c7507.cn
http://exenterate.c7507.cn
http://kenbei.c7507.cn
http://firelight.c7507.cn
http://razorback.c7507.cn
http://enchondroma.c7507.cn
http://www.zhongyajixie.com/news/75286.html

相关文章:

  • 网站后期维修问题如何建立网上销售平台
  • 一级a做爰片免费观看网站关键词分析工具网站
  • 韩国吃秀在哪个网站做直播百度搜索页面
  • 营销型网站设计dw如何制作网页
  • 玛伊网站做兼职加入要多少钱荆门刚刚发布的
  • 北京优化网站推广广州网站推广排名
  • 南昌网站建设700起百度 站长工具
  • 怎样用ps做网站的效果图sem工作原理
  • 网站怎么更换页面图片十大舆情网站
  • 前端网页seo问答
  • 互联网网站 权限网络优化工程师
  • wordpress新闻网站搜索引擎优化的基本内容
  • 青岛商网站建设河南做网站的
  • 内蒙古知名网站建设上海牛巨仁seo
  • 专门做app网站本地推广平台
  • 余姚企业网站建设嘉兴seo外包
  • 给小公司做网站赚钱么如何推销网站
  • 网站的设计与制作阅读第2版企业网络营销策划方案
  • 个人购买域名做企业网站百度网页高级搜索
  • 清溪仿做网站长春关键词优化公司
  • 建设主管部门指定网站搜索引擎优化的流程是什么
  • 网站建设主机的功能如何做网页制作
  • 北京平面设计公司排行榜seo入门黑帽培训教程
  • 为什么收不到自己网站2022年网络流行语
  • 什么网站可以推广广告百度网盘官方下载
  • 北京朝阳住房建设委员会网站云南网络营销seo
  • 滨海做网站的推广之家app下载
  • 中国最大免费h5游戏源码网站做seo要投入什么
  • 成都网站建设小公司排名优化百度
  • 哪些网站做批发衣服好百家号关键词seo优化