各位看官们,大家好,上一回中咱们说的是字符串比较的例子,这一回咱们说的例子是:字符串查找。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,在C语言的标准库中为我们提供了字符串查找函数,我们只需要包含string.h头文件就可以使用字符串查找函数。这点和字符串比较函数一样,标准库为我们提供了三个字符串查找函数:strchr,strrchr和strstr。当然了,标准库中也有一些类似查找功能的函数,但是这些函数的使用概率比较小,因此我们就不详细介绍了。接下来我们分别介绍查找函数的用法及其注意事项。

strchr函数原型:char * strchr(const char *s1, int c)

strchr函数用法:它把c转换成char类型的字符,然后在s1中查找该字符,如果找到该字符,那么返回该字符在字符串中第一次出现的位置,如果没有找到,那么返回空指针。

strchr注意事项:它把int类型的变量强制转换成char类型的变量,其实是按照字符的ASCII码值进行转换。比如97会被转换为字符’a’。我们想查找某个字符时,只需要输入它的ASCII码值就可以。另外,在查找过程中,字符串的小尾巴也会当作字符串的一部分,所以可以在字符串中找到空字符的位置。

我们举一个实际的例子来说明,在程序中定义如下字符串:

char *s1 = "abcdABCDabcd";

char *s2 = "abc";

int c = 97;

我们使用strchr函数来查找c在字符串s1中的位置,查找的结果如下:

a(97) is found in abcdABCDabcd, and location is 1.

(0) is found in abcdABCDabcd, and location is 13. //" \0 can't be show"

这里的字符串比较简单,大家一眼就可以看出来字符a在字符串s1中,而且位于第一位。我们再和程序的运行结果去对比,显然是一致的。另外,也可以在字符串中查找空字符,也就是字符串的小尾巴,查找的结果位于字符串末尾,这点我们可以在上面的程序运行结果中看到。

strrchr函数原型:char * strrchr(const char *s1, int c)

strrchr函数用法:它把c转换成char类型的字符,然后在s1中查找该字符,如果找到该字符,那么返回该字符在字符串中最后一次出现的位置,如果没有找到,那么返回空指针。这点和strchr正好相反。

strrchr注意事项:它和strchr的注意事项相同,因此就不详细说明了。

我们举一个实际的例子来说明,还是使用刚才的字符串:

char *s1 = "abcdABCDabcd";

char *s2 = "abc";

int c = 97;

我们使用strrchr函数来查找c在字符串s1中的位置,查找的结果如下:

a(97) is found in abcdABCDabcd, and re-location is 9.

(0) is found in abcdABCDabcd, and re-location is 13. //" \0 can't be show"

大家可以看到,字符串s1中包含两个a字符,一个位于字符串的第一位,另外一个位于字符串的第九位。这和程序的运行结果是一致的。另外,字符串s1中只有一个空字符,而且位于字符串的末尾,我们再和程序的运行结果去对比,这显然也是一致的。

大家或许已经发现了,我们刚才使用的两个字符串查找函数,都是用来查找单个字符的,有没有查找整个字符串的函数?答案是肯定的。标准库为我们提供了strstr函数,接下来我们详细介绍它。

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-34116-1.html

c语言strchr函数内容,c strchr函数_c语言strchr函数_strchr函数用法相关推荐

  1. c语言仿ce内存搜索工 源代码_C语言函数库:动态库和静态库优缺点比较

    函数的重要性 我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护.我们可以把他们制 ...

  2. C++两个函数可以相互递归吗_C语言“最难啃”的三块硬骨头!你知道吗?

    提到C语言很多初学者都觉得,学到中间就进行不下去了,因为碰到了几个硬骨头死活翻不过去,于是很多人给C语言下结论太难了,太靠近底层了,特别是那几块难啃的骨头,直接理解不了,进行不下去. 今天就来说下,最 ...

  3. c语言遍历文件内容_跨平台的C语言网络框架库acl

    acl概述 acl (全称Advanced C Library)是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功 ...

  4. c语言不会可以学好java吗_C语言一定要学好吗?

    编程语言其实是一个很初级的工具,但是你又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好.可是如果你不会写字,那就一定写不出文章来. 首先,在 ...

  5. c语言谭浩强ppt课件,编程_C语言学习课件_谭浩强_PPT~1216F.ppt

    编程_C语言学习课件_谭浩强_PPT~1216F.ppt ,第一章,C语言概述本章要点,C语言的特点 C程序的结构 在计算机上运行C程序的方法主要内容,1.1 语言出现的历史背景 1.2 程序的特点 ...

  6. 上海电机学院c语言,上海电机学院第1章_C语言概述.ppt

    上海电机学院第1章_C语言概述 第一章 本章要点 C语言的特点 C程序的结构 在计算机上运行C程序的方法 主要内容 1.1 计算机与程序.程序设计语言1.2 C语言出现的历史背景 1.3 C语言的特点 ...

  7. c语言怎么把一个整数挨挨挤挤,《C语言》课程PPT_第1章_C语言基础

    C语言基础 第一章 传褪猿度历霞司腺娠详躁代升乍圃刷烘诧藩东兹淮驹耿游竿郝芽祖续憨荫 C语言 课程PPT 第1章 C语言基础 C语言 课程PPT 第1章 C语言基础 2 本章目标 命令 程序以及软件之 ...

  8. R 语言怎么保存工作目录到当前路径_C语言探索之旅 | 第二部分第七课:文件读写...

    内容简介 前言 文件的打开和关闭 读写文件的不同方法 在文件中移动 文件的重命名和删除 第二部分第八课预告 1. 前言 上一课 C语言探索之旅 | 第二部分第六课:创建你自己的变量类型 之后,我们来学 ...

  9. c语言手机通讯系统报告书,定稿毕业论文_C语言_手机通讯录管理系统设计最终定稿(范文1)...

    <毕业论文:C语言_手机通讯录管理系统设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文_C语言_手机通讯录管理系统设计(最终定稿)>相关文档资源请在帮帮文 ...

  10. c语言编程基础课件,第7章_C语言图形编程基础课件

    第7章_C语言图形编程基础课件 狭义的组织变革是指组织根据外部环境的变化和内部情况的变化及时地改变自己的内在组织结构,以适应客观发展的需要. 狭义的组织变革是指组织根据外部环境的变化和内部情况的变化及 ...

最新文章

  1. arcgis python规划地类-作为规划师,为什么我建议你学Python数据分析?
  2. React 万能的函数表达式
  3. 2.4.2 死锁的处理策略-预防死锁
  4. 2018,10,19模拟赛
  5. azure云数据库_如何使用SQL Data Sync同步Azure SQL数据库和本地数据库
  6. 平分七框梨java_php编程- php算法 - 平分七框鱼
  7. 点击流日志分析项目实战开发流程
  8. 信息论实验一:信源熵的计算
  9. 硬件工程师常用网站-芯片手册免费下载
  10. 企业微信——定时群机器人布置
  11. 细胞器标记物丨FUS抗体高品质结果展示
  12. 透析BAT人工智能生态图谱:AI大战一触即发
  13. Android开发中App演示Gif效果动画的制作过程详讲
  14. 墙后的全部姿势,全被“瞎眼”AI透视
  15. 用户手机微信扫一扫就能进入公众号
  16. Tello无人机马达更换
  17. Web前端开发技术:Vue开发基础(2)
  18. SQL-retrieve data from tables
  19. 行人重识别(reid)近期最优最简模型的训练测试
  20. android图片加载过程,教你写Android ImageLoader框架之图片加载与加载策略

热门文章

  1. 线代 | 秒杀方法与技巧
  2. 【五一创作】五一旅游最佳去处淄博
  3. 2022-2027年(新版)中国航空钢材产业发展方向及投资趋势预测报告
  4. java工程 p2p通讯_java实现P2P通信-Go语言中文社区
  5. LaTeX软件安装和使用说明
  6. 为数不多的小爱好 ——书法—— 分享日常写字(2020-12)
  7. 如何在对话框上显示一张图片
  8. 《Python数据处理》7.2.4笔记:寻找唯一键的源码修改——由于zip方法
  9. 7-1 计算个人所得税
  10. 化工标准HG20505 表4.2.2 仪表连接线图形符号 电动信号和二进制电信号是怎么区分的