C语言(函数)学习之[strstr]&[strcasestr]一、strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needle);[2]头文件#include <string.h>[3]函数功能搜索"子串"在"指定字符串"中第一次出现的位置{4}参数说明haystack-->被查找的目标字符串"父串"needle-->要查找的字符串对象"子串"注:若needle为NULL,则返回"父串"[5]返回值(1)成功找到,返回在"父串"中第一次出现的位置的char*指针(2)若未找到,也即不存在这样的子串,返回:"NULL"[6]程序举例#include <stdio.h>#include <string.h>intmain(intargc,char*argv[]){char*res=strstr("xxxhost: www.baidu.com","host");if(res==NULL)printf("res1 is NULL!\n");elseprintf("%s\n",res);print:-->'host: www.baidu.com'res=strstr("xxxhost: www.baidu.com","cookie");if(res==NULL)printf("res2 is NULL!\n");elseprintf("%s\n",res);print:-->'res2 is NULL!'return0;}[7]特别说明注:strstr函数中参数严格"区分大小写"二、strcasestr函数[1]描述strcasestr函数的功能、使用方法与strstr基本一致[2]区别strcasestr函数在"子串"与"父串"进行比较的时候,"不区分大小写"[3]函数原型#define _GNU_SOURCE#include <string.h>char*strcasestr(constchar*haystack,constchar*needle);[4]程序举例#define _GNU_SOURCE // 宏定义必须有,否则编译会有Warning警告信息 #include <stdio.h>#include <string.h>intmain(intargc,char*argv[]){char*res=strstr("xxxhost: www.baidu.com","Host");if(res==NULL)printf("res1 is NULL!\n");elseprintf("%s\n",res);print:-->'host: www.baidu.com'return0;}[5]重要细节如果在编程时没有定义"_GNU_SOURCE"宏,则编译的时候会有警告信息warning:initializationmakespointerfromintegerwithoutacast原因:strcasestr函数并非是标准C库函数,是扩展函数。函数在调用之前未经声明的默认返回int型解决:要在#include所有头文件之前加 #define_GNU_SOURCE另一种解决方法:(但是不推荐)在定义头文件下方,自己手动添加strcasestr函数的原型声明#include <stdio.h>......externchar*strcasestr(constchar*,constchar*);......// 这种方法也能消除编译时的警告信息

版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言(函数)学习之strstr strcasestr的更多相关文章

  1. C语言(函数)学习之index、rindex

    函数定义:char *index(const char *s, int c); 头文件:    #include strings.h 函数说明:index()用来找出参数s 字符串中第一个出现的参数c ...

  2. 学习LoadRunner之C语言函数

    学习LoadRunner之C语言函数 Action() { /*strchr和strrchr的区别*/ /* char *strTest1="citms citms"; char ...

  3. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  4. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  5. R语言函数化学习笔记6

    R语言函数化学习笔记 1.apply函数 可以让list或者vector的元素依次执行一遍调用的函数,输出的结果是list格式 2.sapply函数 原理和list一样,但是输出的结果是一个向量的形式 ...

  6. R语言函数化学习笔记3

    R语言函数化学习笔记3 R语言常用的一些命令函数 1.getwd()查看当前R的工作目录 2.setwd()修改当前工作目录 3.str()可以输出指定对象的结构(类型,位置等),同理还有class( ...

  7. 【C语言学习笔记】C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  8. GO语言学习(十二)Go 语言函数

    Go 语言函数 函数是基本的代码块,用于执行一个任务. Go 语言最少有个 main() 函数. 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务. 函数声明告诉了编译器函数的名称,返回 ...

  9. C语言课程学习的总结

    C语言课程学习的总结 学习C程序这门课一年了,这是我们学的第一门专业课.在大学里,C语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程.所以作为我这个计算机专业的学生来说当 ...

随机推荐

  1. node.js处理post请求

    1.html 2.app.js var http = require('http') var qs = require('querystring') /** * 路由控制的功能 * @param pa ...

  2. activiti工作流的web流程设计器整合视频教程

    本视频为activiti工作流的web流程设计器整合视频教程 整合Acitiviti在线流程设计器(Activiti-Modeler 5.21.0 官方流程设计器) 本视频共讲了两种整合方式 1. 流 ...

  3. 使用Bower作为Web包管理器

    Bower是一个简单易用的Web包管理器,通过它我们可以非常简便的安装各种Web框架和库,同时它也负责管理不同包之间的关系依赖. 安装Bower Bower需要 npm 和 Git 的支持,在安装Bo ...

  4. Frameless - 用于预览 iOS8 原型的浏览器

    Frameless 是一个用于在 iOS8 中预览产品原型的浏览器.可以可以帮助那些需要一个简单的方法来预览 iOS 设备上的原型设计和开发效果.没有状态栏,通过手势控制浏览器的历史以及键盘的显示. ...

  5. Scroll Depth – 衡量页面滚动的 Google 分析插件

    Scroll Depth 是一个小型的 Google Analytics(谷歌分析)插件,可以让你衡量用户在页面上滚动了多远.它可以监控 25%.50%.75% 和 100% 四个滚动点,并发送谷歌分 ...

  6. 【问题及解决】fonts/fontawesome-webfont.woff2 404 (Not Found)

    问题: 虽然网页正常显示和运行,但是有2个字体文件出现404错误.像笔者这种强迫症是接受不了的. 解决: 因为笔者的服务器是虚拟主机,只需要在主机控制器平台添加对应的MIME类型即可. 这样服务器就支 ...

  7. BP人工神经网络原理(转载)

  8. Kafka主要参数详解(转)

    原文档地址:http://kafka.apache.org/documentation.html ############################# System ############## ...

  9. linux heartbeat v2/v3 的一点资料

    http://linux-ha.org http://linux-ha.org/wiki/Pacemaker Heartbeat2 http://blog.taggesell.de/index.php ...

  10. iOS关于CoreAnimation动画知识总结

    一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...