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

加强网站人才建设十堰网站建设培训

加强网站人才建设,十堰网站建设培训,濮阳市做网站,网站设计说明书上一期#xff0c;我讲解了关于字符串函数中#xff0c;受限制的字符串函数#xff0c;有想了解的小伙伴们可以点此链接去看看#xff1a;C语言字符串函数#xff08;2#xff09;受限制的字符串函数 那么今天#xff0c;我来讲一讲标题中这两个函数的作用和使用方法。 …        上一期我讲解了关于字符串函数中受限制的字符串函数有想了解的小伙伴们可以点此链接去看看C语言字符串函数2受限制的字符串函数 那么今天我来讲一讲标题中这两个函数的作用和使用方法。 目录 一.strstr函数 1.函数基本原理 2.接下来我来展示函数在代码中的使用方法: 3.模拟实现strstr函数 二.strtok字符串切割函数  1.定义 2.函数标准规定 3.函数代码使用  一.strstr函数 注Find a substring.意为在字符串中寻找子字符串 1.函数基本原理 strstr函数 用于判断字符串strCharSet是否是string的子串。如果是则该函数返回strCharSet在string中首次出现的地址否则返回NULL。 const char* string:被查找目标字符串 const char* strCharSet:要查找的对象字符串 2.接下来我来展示函数在代码中的使用方法: int main() {char a1[] www.httpschinasystem.com;char a2[] china; char* tmpstrstr(a1, a2);if (tmp NULL) {printf(此字符串不存在未能查找成功\n);}else {printf(%s\n, tmp);}return 0;} 通过创建两个字符串a1为被查找的字符串a2为要进行查找的字符串使用strstr函数将数据传给指针进行打印。 注只要子串存在函数不仅打印出子串a2的内容还会打印出子串a2在a1所处位置往后的所有字符 。 以上代码呈现的是函数一次就能在a1中找到a2的情况属于简单情况 接下来我会为大家展现函数需要多次才能在a1中找到a2的复杂情况 char a3[] abbbcdef;char a4[] bbc;char* ret strstr(a3, a4);if (ret NULL) {printf(此字符串不存在未能查找成功\n);}else {printf(%s\n, ret);//bbcdef} strstr函数对于复杂情况处理过程 通过代码可知a4的字符串为bbc,a3的字符串为abbbcdef当函数首先利用指针string指向a3的首字符时,发现字符a不等于strCharSet指针指向a4字符串的字符bstring会指向下一个字符进行寻找string指向了字符b发现与strCharSet指向的吻合然后两个指针同时进行对比对比成功继续向后对比在string和strCharSet第三次进行对比时,发现不相等寻找失败。 strCharSet指针重新指向a4的首地址等待string再一次与它指向字符相等而string会指向刚才字符b的下一个字符,重新开始寻找配对字符发现配对成功string与strCharSet再一次开始对比经过三次的对比都成功查找成功查找成功的理由就是strCharSet指针顺利指向\0字符系统会把该子串a4在a3的首位置及以后的所有字符作为返回值传给ret结束函数执行操作。 以下为查找失败代码 char a5[] abbbcdef;char a6[] bbd;char* ecp strstr(a5, a6);//NULLif (ecp NULL) {printf(此字符串不存在未能查找成功\n);}else {printf(%s\n, ecp);} 表明指向字符串的两指针从始至终都没有真正完整的配对成功过直到指针string遍历完a5数组中的字符串然后指向’\0结束查找以失败告终。 函数的返回值置为NULL 3.模拟实现strstr函数 char* my_Strstr(const char* str1, const char* str2) {assert(str1 str2);const char* s1 str1;const char* s2 str2;char* p str1;while (*p ! \0) {s1 p;s2 str2;while (*s1 ! \0 *s2 ! \0 *s1 *s2) {s1;s2;}if (*s2 \0)return p;p;}return NULL; } 模拟实现的原理与我刚在讲解多次寻找情况中所说的一样需要考虑三种情况         当两指针开始只要有任何一方或者双方都指向\0NULL空字符时直接会停止寻找查找失败返回NULL。 第二种是被查找的字符串中string遍历完所有字符都没能找到与之相等的子字符串则查找失败返回NULL. 最后一种直到strCharSet指针顺利指向子字符串的\0位置才会被判断为查找成功该函数返回strCharSet在string中首次出现的地址。 二.strtok字符串切割函数  Find the next token in a string. 在字符串中查找下一个标记。 1.定义 函数是将字符串strToken通过分割符分解为多组组字符串。 char*strToken是一长串字符串 char* strDelimit:字符串中的分隔符字符分割符能够自己设定可以是任何符号、记号也可以是字符 。 2.函数标准规定 strtok函数找到str中的下一个标记并将其用 \0 结尾返回一个指向这个标记的指针。注strtok函数会改变被操作的字符串所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。        strtok函数的第一个参数不为 NULL 函数将找到str中第一个标记strtok函数将保存它在字符串中的位置。        strtok函数的第一个参数为 NULL 函数将在同一个字符串中被保存的位置开始查找下一个标记。!!!        如果字符串中不存在更多的标记则返回 NULL 指针。 3.函数代码使用  int main() {char arr[] www.http://zhangsanchnk.com;//字符串char arr2[] { . : // };//分隔符数组char* retstrtok(arr, arr2);printf(%s\n, ret);ret strtok(NULL, arr2);printf(%s\n, ret); ret strtok(NULL, arr2);printf(%s\n, ret); ret strtok(NULL, arr2);printf(%s\n, ret); ret strtok(NULL, arr2);printf(%s\n, ret); 如上图arr是要被分割的字符串数组arr2是分割符数组函数会通过分隔符的位置将字符串切割成多个字符串。每次切割时遇到分割符就结束切割每一次切割完等到下一次切割开始都会在上一个保存的位置开始向后操作直到最后指针遇到;\0字符完成切割操作。 我将该函数调用5次后才将切割后的所有字符串 全部打印出来除了第一次调用函数是将arr1放进去剩下的四次都是放入NULL原因就是下面规定所要求 问题1大家可能会问若是多打印了一次或者多次会发生什么结果如下  多打印后的结果也是输出两次null空字符串并不会对程序造成越界访问报错。  问题2若是字符串有很长很长很长到底要打印几遍造成代码冗余怎么办 这是关键所在程序员在设计的时候已经想到了这种情况针对此需要我们使用for循环遍历 nt main() {char arr[] www.http://zhangsanlibite.com//efhba.cabjke:sqf1578621;//字符串char arr2[] { . : // };//分隔符数组//若字符串数组是很长的话无法算出到底应该输出几次才能输完所以要用到for循环char* ret NULL;for (ret strtok(arr, arr2); ret ! NULL; ret strtok(NULL, arr2)) {printf(%s\n, ret);}return 0; } 在循环中ret!NULL是限制条件若是下一次拷贝到的是空字符串就表明字符串已经到了最后了停止循环。        初始条件就是第一次得到strtok的返回字符串每次循环完之后便会执行下一次的strtok。 好了对于strstr字符串查找子串函数、strtok字符串切割函数的讲解就到这里大家觉得有用的话记得点个一键三连
http://www.hkea.cn/news/14499763/

相关文章:

  • 一定要用c 做网站吗周口城乡建设网站
  • 一个专门做字画的网站wordpress 禁止过滤
  • 网站恶意做评论梅县区住房和城乡规划建设局官方网站
  • 创建个人网站巨量关键词搜索查询
  • 网站icp备案证书wordpress通知邮件美化
  • 网站承建商有哪些如何 做镜像网站
  • 用什么软件快速做网站福田莲花北网站建设
  • 免费网站设计 优帮云优质企业网站建设
  • 网站开发实习计划模板在服务器网站上做跳转
  • 农业网站 源码怎么用ip地址做网站
  • 公司制作网站怎么做网站开发交流吧
  • 用PS怎么做网站图片视频网站采集规则
  • 广东建设厅网站做网站不签合同
  • 网站开发背景怎么写网站搭建与服务器配置
  • 门户网站集群建设方案12380网站建设总结
  • 网站右侧二维码代码wordpress 登陆验证码
  • 将网站制作成app辽宁省建设工程新希望官网
  • 两人做性视频网站什么是网站解决方案
  • asp.net网站开发期末复习题摄影课程自学网站
  • 网站建设编程时注意事项网站开发开票编码归属
  • 如何删除自己建的网站服务器调用wordpress
  • 网广州建网站站制作没备案的网站收录
  • 网站未备案会怎么样网站服务器好
  • 网站界面怎么做网站注册商是什么
  • 银行网站维护是做哪些wordpress lazy load
  • 网上做名片的网站哈尔滨百度公司地址
  • 网站地区分站系统重庆网站建设总结与体会
  • 湛江网站建设方案报价做社情网站犯法怎么办
  • 成都金融网站建设公司排名网页设计公司深圳
  • 湘潭网站制作公司网站做排行多少费用