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

武汉市青山区建设局网站杭州网站搜索排名

武汉市青山区建设局网站,杭州网站搜索排名,婚礼策划师,网站建设答辩一、函数介绍 strstr 是 C 语言标准库 <string.h> 中的字符串查找函数&#xff0c;用于在主字符串中查找子字符串的首次出现位置。若找到子串&#xff0c;返回其首次出现的地址&#xff1b;否则返回 NULL。它是处理字符串匹配问题的核心工具之一。 二、函数原型 char …

一、函数介绍

strstr 是 C 语言标准库 <string.h> 中的字符串查找函数,用于在主字符串中查找子字符串的首次出现位置。若找到子串,返回其首次出现的地址;否则返回 NULL。它是处理字符串匹配问题的核心工具之一。

二、函数原型

char *strstr(const char *haystack, const char *needle);
  • 参数说明

    • haystack:主字符串(被查找的字符串)。

    • needle:子字符串(要查找的目标)。

  • 返回值

    • 找到时:返回子串首次出现的指针地址

    • 未找到时:返回 NULL

  • 特点:区分大小写,如 "Hello" 中查找 "hello" 会失败。

三、基础用法示例

1. 查找成功场景

#include <stdio.h>
#include <string.h>int main() 
{char str[] = "Welcome to MY CSDN blog!";char sub[] = "CSDN";char *result = strstr(str, sub);if (result != NULL){printf("找到子串!位置:%ld\n", result - str);  // 输出:找到子串!位置:14printf("匹配内容:%s\n", result);              // 输出:CSDN blog!
} 
else 
{printf("未找到子串。\n");
}return 0;
}

 2. 查找失败场景

char *result = strstr("Apple", "app");  // 返回NULL(大小写敏感)

 四.模拟实现
const char* my_strstr(const char* str1, const char* str2)
{const char* s1 = NULL;const char* s2 = NULL;const char* cur = str1;assert(str1 && str2);if (*str2 == '\0')//特殊场景return str1;while (*cur){s1 = cur;s2 = str2;while (*s1 && *s2  && *s1 == *s2){s1++;s2++;}if (*s2 == '\0')return cur;cur++;}return NULL;
}int main()
{char arr1[] = "abbbcdef";char arr2[] = "bbc";const char* ret = my_strstr(arr1, arr2);if (ret == NULL)printf("找不到\n");elseprintf("%s\n", ret);return 0;
}
分析:

这里需要创造三个指针,cur用来储存运算的地址。

1.   进行外层while循环(*cur)判断条件逐个往后排序知道遇到\0,在外层循环中,s1 被初始化为当前的 cur 位置,即 str1 中的当前位置;s2 被初始化为 str2 的起始位置。再进行内层while循环,while的判断条件是
     1  *s1 和 *s2 都不为 \0(即两个字符串都没有到达末尾)
     2.  *s1 == *s2(即当前字符相同)。

     3. 如果上述条件都满足,则 s1 和 s2 都向后移动一个字符位置(s1++ 和 s2++),继续比较下一个字符。(这一行代码确保了在两个字符串都不为空且当前字符相等的情况下,继续比较下一个字符,从而实现字符串的逐字符匹配。)

匹配结果:

内层的 while 循环结束时,检查 *s2 是否为 \0。如果是,则说明 str2 已经完全匹配了 str1 中的一个子串,此时返回 cur,即匹配开始的位置。

如果不是,则继续外层循环,从 str1 的下一个字符开始重新尝试匹配。(cur++)

如果外层循环结束且没有找到匹配的子串,则返回 NULL

总结:

外层循环遍历 str1 的每一个可能的起始位置,内层循环则负责从该位置开始逐字符比较 str1 和 str2,直到找到匹配的子串或确定没有匹配为止。

http://www.dtcms.com/wzjs/26662.html

相关文章:

  • 南昌有没有做企业网站和公司网络优化工具
  • 域名网站空间市场营销八大营销模式
  • 个人网站建设价格表如何做好百度推广
  • 电视剧怎么做短视频网站搜狗推广登录平台官网
  • 生鲜网站建设规划书样板深圳短视频推广
  • 网站域名解析教程湖南长沙seo
  • 建筑设计接单平台上海专业的seo推广咨询电话
  • 马云将来淘汰的十个行业网站建设个人模板建站
  • 宁波自助建站模板企点客服
  • 做网站的软件micro合肥网站建设优化
  • 大型网站建设报价方案软文什么意思范例
  • 中国工程建设管理协会网站搜狗推广登录
  • 网站建设改版方案企业网站营销的优缺点
  • 有什么可以做翻译的网站互联网销售模式
  • 白鹭引擎做h5网站公司网站制作教程
  • 栖霞网站设计roseonly企业网站优化
  • 济南营销网站建设网络营销的平台有哪些
  • 企业网站建设58同城企业网络营销策划书范文
  • 福建建设厅安全员报名网站海南百度竞价推广
  • 做往外批发的网站吗免费网页制作平台
  • logo设计网站排行榜网络推广网站推广淘宝运营商
  • 国美在线网站域名建设搜索引擎优化的含义和目标
  • 淮安新港建设有限公司网站网站收录批量查询
  • 有什么网站可以做微信支付全网搜索关键词查询
  • 新品发布会推广词seo站长网
  • 昆山网站制作昆山网站建设陕西百度代理公司
  • 青海企业网站建设开发seo专业培训需要多久
  • 无为网站建设官方网站营销
  • pc网站建设需要提供哪些资料360提交网站收录入口
  • 做社群最好的网站源码宁波seo费用