strstr()函数

  C语言中如何向查找一个字符串中是否包含另一个字符串,可以使用strstr()函数。使用示例如下:

int main(int argc, char *argv[])
{char str1[]="abcdefgabcdef";char *str2;puts(str1);str2 = strstr(str1,"def");if(str2 == NULL)puts("not find");puts(str2); system("pause");return 0;
}

  strstr()函数里面有两个参数,两个参数都为字符串,用来查找字符串1中是否包含字符串2。

  在代码中定义两个字符串,首先打印出字符串1,然后使用strstr()函数查找字符串“def”是否包含在字符串1中。输出结果如下:

  字符串1中包含了两个字符串“def”,通过输出的结果可以看出,函数返回的是第一次字符串出现的位置。如果查找的字符串2在字符串1中没有包含,则返回一个空指针。

  比如这里查找的“123”在字符串1中没有包含,则返回一个空指针。

strpbrk()函数

  strstr()函数查找字符串的时候字符串是需要完全匹配的,而strpbrk()函数在查找字符串的时候不需要完全匹配。只要字符串1中包含字符串2中的任意一个字符,则查找成功。修改上面的例子如下:

int main(int argc, char *argv[])
{char str1[]="abcdefgabcdef";char *str2;puts(str1);str2 = strpbrk(str1,"12f34");if(str2 == NULL)puts("not find");puts(str2);  system("pause");return 0;
}

  查找字符串1中是否包含"12f34"中的任意一个字符。输出结果如下:

  输出的字符串以字符 f 开头,说明在字符串1中包含字符串2中的 f 字符,并且返回的是第一次出现 f 的位置。如果字符串1中不包含字符串2中的任意一个字符,怎返回一个空指针。

 &emsp:字符串1中不包含“1234”中的任何一个字符,所以返回的是一个空指针。

C语言学习笔记---字符串查找函数strstr()和strpbrk()函数相关推荐

  1. C语言学习笔记---字符串拼接函数 strcat() 和 strncat()

    strcat()函数    strcat()函数主要用来拼接字符串,用于将一个字符串拼接到另一个字符串的后面.下面通过一个简单的例子来演示一下这个函数的使用方法. int main() {char s ...

  2. C语言学习笔记——字符串结束符\0

    C语言中的字符串结束符\0标志着字符串的结束,由编译器自己加上的,ASCII值为0,表示NULL,ASCII中有很多不可见字符由转义字符\和可见字符来标识的,当然可见字符也能用转义字符表示.

  3. C语言学习笔记---字符串转换函数

    字符串转整数   字符串转换为整数的函数有两个,他们的函数原型如下: int __cdecl atoi(const char *_Str);long __cdecl atol(const char * ...

  4. C语言学习笔记---字符串对比函数strspn()和strcspn()函数

    strspn()函数   如果要对比两个字符串中从第一个字符开始总共有多少个相同字符时,可以使用strspn()函数,它里面有两个参数字符串1和字符串2,从字符串1开始位置依次对比字符串1和字符串2有 ...

  5. C语言学习笔记(1)--基本概念和函数用法

    最近开始重新学习C语言,所谓"好记性不如烂笔头",把一些要记住的基本概念和一些函数用法,无论是书上看到的,或者是在别人的博客和论坛上帖子看到的,都归纳到这篇文章中: 2014-10 ...

  6. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  7. c语言数组宏定义标识符,C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针...

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  8. C语言学习:字符串查找字符串

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #in ...

  9. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

最新文章

  1. 【通俗理解线性代数】 -- 特殊的矩阵
  2. 这才是面试官想听的:详解「递归」正确的打开方式
  3. mysql悲观锁和乐观锁
  4. GIT常用命令以及使用详解图示
  5. Activity启动流程:Hook实现启动未注册Activity
  6. 源码下编译APK,却是总是提示,找不到符号:SystemProperties 。。。
  7. 从Delegate.CreateDelegate看值类型的实例方法
  8. [Java网络编程基础]TCP发送和接收数据
  9. 计算机教师帮扶记录,信息技术辅导记录.doc
  10. 解决react状态管理---React Query
  11. 笔记本gtx1650最好用驱动_各型号笔记本显卡定位
  12. 小小的我,有大大的梦想
  13. linux系统查看ssh是否开启,linux查看与开启ssh
  14. 问题 B: 零基础学C/C++25——判断某整数是正整数、负整数还是零
  15. 【PYTHON,WORD】3.调整Word文档样式
  16. 教学案例六 多重循环
  17. 最近遇到一个ORA-1000,“maximum open cursors exceeded“
  18. 于神之怒加强版 [Bzoj 4407]
  19. 光度测量类有哪些最新发表的毕业论文呢?
  20. 计算机二级小蒋在教务处负责学生成绩,小蒋是一位中学教师,在教务处负责初一年级学生的成绩管理。由于学校地处偏远地区,缺乏必要的教学_考题宝...

热门文章

  1. 兼容谷歌的光标居中写法
  2. ldirectord实现高可用负载集群
  3. cisco6509 2811 配置备份
  4. CSS伪对象选择符整理
  5. Nginx + tornado + supervisor部署
  6. 给Lisp程序员的Python简介
  7. imageNamed 与 imageWithContentsOfFile的区别
  8. php5.4 的 php-fpm 的重启
  9. Servlet 数据库访问
  10. c++用一级运算比较大小_Python 学习笔记:Python 中的数字和数字型运算