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

做网站 徐州百度移动

做网站 徐州,百度移动,济阳做网站公司,徐州网站建设哪家好目录 一,strstr函数简介 二,strstr函数实现原理 三,strstr函数的用法 四,strstr函数的注意事项 五,strstr函数的模拟实现 一,strstr函数简介 strstr函数是在一个字符串中查找另一个字符串的第一次出现&…

目录

一,strstr函数简介

二,strstr函数实现原理

三,strstr函数的用法

四,strstr函数的注意事项

五,strstr函数的模拟实现


一,strstr函数简介

strstr函数是在一个字符串中查找另一个字符串的第一次出现,并返回该位置的指针,如果找不到,则返回NULL

🍂函数头文件: 

#include <string.h>

 🍂函数原型:

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

 str1:被查找的目标字符串

 str2:要查找的对象字符串

二,strstr函数实现原理

strstr函数的实现可以通过遍历字符串的方式来查找str2字符串的出现位置。

1,遍历str1字符串,逐个字符与str2字符串进行比较。

2,如果str1字符串的当前字符与str2字符串的第一个字符相等,则继续比较后续字符。

3,如果str1字符串中的连续字符str2字符串完全匹配,则返回该位置的指针。

4,如果str1字符串遍历完毕仍未找到匹配,则返回NULL。 

三,strstr函数的用法

#include <stdio.h>
#include <string.h>int main()
{char str1[] = "hello world!";char str2[] = "world!";char* ret = strstr(str1, str2);if (ret == NULL)printf("找不到!\n");elseprintf("%s\n", ret);return 0;
}

🎈运行结果: 

🎈释义: 

上述代码中,我们在字符串"hello world!"中查找字符串"world!"的第一次出现,并打印位置。如果找到了,则打印出从第一次找到的那个位置开始后面的所有字符;如果未找到,则打印“找不到”。

四,strstr函数的注意事项

在使用strstr函数时,需要注意以下几点:

1,函数返回的指针指向的是str1字符串中匹配到的位置,因此可以通过指针的偏移量来得到具体的位置。

#include <stdio.h>
#include <string.h>int main()
{char str1[] = "hello world!";char str2[] = "world!";char* ret = strstr(str1, str2);if (ret == NULL)printf("找不到!\n");elseprintf("%d\n", ret - str1);return 0;
}

 🎈运行结果: 

 🎈释义:

上述代码中,我们在字符串str1中查找字符串str2的第一次出现,并打印位置。如果找到了,则打印出位置的偏移量;如果未找到,则打印“找不到”。

2,如果需要查找字符串的最后一次出现,可以配合使用strstr函数。

3,函数的参数str1和str2都应该是以'\0'结尾的字符串,否则可能会导致不可预料的结果。 

五,strstr函数的模拟实现

#include <stdio.h>
#include <string.h>
#include <assert.h>const char* my_strstr(const char* str1, const char* str2)
{const char* cp;//记录开始匹配的位置const char* s1;//遍历str1指向的字符串const char* s2;//遍历str2指向的字符串assert(str1 && str2);//处理空指针的情况if (*str2 == '\0')//如果str2为空字符串,则返回str1return str1;cp = str1;while (*cp){s1 = cp;s2 = str2;while (*s1 && *s2 && *s1 == *s2)//在str1中找到str2的第一个字符{s1++;s2++;}if (*s2 == '\0')//如果找到了str2的所有字符,则返回该位置的指针return cp;cp++;//否则,继续在str1中寻找下一个可能的位置}return NULL;//如果未找到匹配的位置,则返回NULL
}int main()
{char str1[] = "hello world!";char str2[] = "world!";const char* ret = my_strstr(str1, str2);if (ret == NULL)printf("找不到!\n");elseprintf("%s\n", ret);return 0;
}
http://www.tj-hxxt.cn/news/82827.html

相关文章:

  • 电脑报价网站seo岗位有哪些
  • 中国建设银行网站查征信日本站外推广网站
  • 海南网站建站网络推销平台有哪些
  • 网站怎么做关键词在哪做成都网络推广公司
  • 高端的网站建设公司重庆森林经典台词截图
  • 公司网站制作范文百度云搜索引擎入口网盘搜索神器
  • 网站制作怎么做让点击高seo行业网
  • 网站可视化设计快速网站轻松排名哪家好
  • 学做美食交流网站百家号官网
  • 天津做网站的公司排名青岛seo推广
  • 网站建设app手机下载企业网站网页设计
  • 用html是做班级简介网站网络营销的功能有哪些?
  • 杭州微信网站制作学习软件
  • 自己建站网上销售平台怎么做
  • 宝安网站设计公司seo网络优化平台
  • 网站建设 图片百度网盘资源搜索引擎入口
  • 建设400官方网站最近大事件新闻
  • dede 电商网站百度推广培训机构
  • 珠海建网站郑州品牌网站建设
  • 网站源码中国有限公司市场营销公司有哪些
  • 网站开发先做后台还是前台嘉兴seo外包平台
  • 北京 网站 优化湖南网站设计外包费用
  • 哪些网站做的好看香港域名注册网站
  • 红酒网站定位企业培训机构有哪些
  • 创意名字设计福州seo管理
  • 晋城龙采网站建设软文标题大全
  • 做网站有前景吗上饶seo博客
  • 做动画合成的视频网站今日最新体育新闻
  • 湖南建设人力资源湖南网站建设网站制作需要多少钱
  • 福州做网站的哪家好上海牛巨微seo关键词优化