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. 框架Hibernate笔记系列 基础Session

    标题:框架Hibernate笔记 资料地址: 1. www.icoolxue.com 孔浩 1.背景简介 Hibenate是JBoss公司的产品.它是数据持久化的框架.Usually,我们使用JDBC ...

  2. Scalaz(37)- Free :实践-DB Transaction free style

    我一直在不断的提示大家:FP就是Monadic Programming,是一种特殊的编程风格.在我们熟悉的数据库编程领域能不能实现FP风格呢?我们先设计一些示范例子来分析一下惯用的数据库编程过程: i ...

  3. Java经典实例:按字符颠倒字符串

    使用StringBuilder类的reverse()方法来实现. /** * Created by Frank */ public class StringRevChar { public stati ...

  4. HTTP协议(转)

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...

  5. 硬连接与软连接,inode与links

    硬连接和软连接,第一感觉就像是window的快捷方式,实则不然 要说硬连接和软连接,那就必须了解inode和block以及分区了 EXT文件系统在创建分区的时候,就划分了两块区域,inode tabl ...

  6. ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint......

    今天用Hibernate建立外键的时候发现没有建立 但是创建了这个字段 情景: user表有一字段role,role是role表id字段的外键 原因: user表中已经有记录了,而且有的记录role这 ...

  7. C#实现jQuery的方法连缀

    jQuery的方法连缀使用起来非常方便,可以简化语句,让代码变得清晰简洁.那C#的类方法能不能也实现类似的功能呢?基于这样的疑惑,研究了一下jQuery的源代码,发现就是需要方法连缀的函数方法最后返回 ...

  8. Asp.net Ibatis 增、删、改、查

    好久都没用.net Ibatis配置了 今天给大家分享一下获取它的增.删.改.查. #region 节点类型表 public bool InsertNodeType(NodeType allRevie ...

  9. C#联合Union的实现方式

    一.基础篇 C#不像C++,他本身是没有联合Union的,但是可以通过手动控制结构体每个元素的位置来实现,这需要结合使用StructLayoutAttribute.LayoutKind以及FieldO ...

  10. 8款超实用JavaScript框架

    下面盘点了8款实用的JavaScript框架: 1. Hammer.js Hammer.js是被广泛使用的轻量级JavaScript框架,它提供了常用触摸操作的规范,比如收缩.拖放.双击和删除等等.它 ...