1. 头文件:#include <string.h>
  2.  
  3. 定义函数:int strcasecmp (const char *s1, const char *s2);
  4.  
  5. 函数说明:strcasecmp()用来比较参数s1 s2 字符串,比较时会自动忽略大小写的差异。
  6.  
  7. 返回值:若参数s1 s2 字符串相同则返回0s1 长度大于s2 长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0 的值。
  1. 头文件:#include <string.h>
  2.  
  3. strncmp() 用来比较两个字符串的前n个字符,区分大小写,其原型为:
  4. int strncmp ( const char * str1, const char * str2, size_t n );
  5.  
  6. 【参数】str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。
  7.  
  8. 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strncmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,直到字符结束标志'\0',若差值不为0,则将差值返回。例如字符串"Ac""ba"比较则会返回字符"A"()和'b'()的差值(-)。
  9.  
  10. 注意:要比较的字符包括字符串结束标志'\0',而且一旦遇到'\0'就结束比较,无论n是多少,不再继续比较后边的字符。
  1. 头文件:#include <string.h>
  2.  
  3. 定义函数:int memcmp (const void *s1, const void *s2, size_t n);
  4.  
  5. 函数说明:memcmp()用来比较s1 s2 所指的内存区间前n 个字符。
  6.  
  7. 字符串大小的比较是以ASCII 码表上的顺序来决定,次顺序亦为字符的值。memcmp()首先将s1 第一个字符值减去s2 第一个字符的值,若差为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如,字符串"Ac""ba"比较则会返回字符'A'()和'b'()的差值(-)。
  8.  
  9. 返回值:若参数s1 s2 所指的内存内容都完全相同则返回0 值。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。
  1. 忽略大小写的比较、查找: strcasecmpstrcasestr
  2. C语言中(‍string.h)定义了用于进行忽略大小写的字符串比较的函数strcasecmpstrncasecmp,以及用于子串查找的函数strstr,不过很遗憾的是,CC++中并未定义strstr的“忽略大小写版本”。
  3. 以下是strstr的一种实现形式(注意,当s2是一个空串时,直接返回了s1,而非NULL):
  4. const char* strstr( const char *s1, const char *s2 )   
  5. {
  6. int len2;
  7. if ( !(len2 = strlen(s2)) )
  8. return s1;
  9. for (; *s1; ++s1)
  10. {
  11. if ( *s1 == *s2 && strncmp( s1, s2, len2 )== )//如果串中包含空格,考虑使用memcmp
  12. return s1;
  13. }
  14. return NULL;
  15. }
  16.  
  17. 参考strstr实现,我写了一个它的忽略大小写的版本strcasestr
  18. const char* strcasestr(const char* str, const char* subStr)
  19. {
  20. int len = strlen(subStr);
  21. if(len == )
  22. {
  23. return NULL; /* 这里我并未照strstr一样返回str,而是返回NULL
  24. }
  25.  
  26. while(*str)
  27. {
  28. if(strncasecmp(str, subStr, len) == 0) /* 这里使用了可限定比较长度的strncasecmp */
  29. {
  30. return str;
  31. }
  32. str++;
  33. }
  34. return NULL;
  35. }

http://baike.baidu.com/link?url=K32muTbO-oneGzlstp7NFWzj_Zzgkl56_BVAB1RgGxpkUw4tO1j57Ycz8FYVs0sgiEFS3cIyVFeHoFYK-cB-zK

c++ 字符串查找函数的更多相关文章

  1. php中常用的字符串查找函数strstr()、strpos()实例解释

    string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 1.$haystack被查找的字 ...

  2. C/C++字符串查找函数

    C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里 ...

  3. C/C++字符串查找函数 <转>

    C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里 ...

  4. php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpos

    php字符串查找函数 php查找字符串中出现的次数函数substr_count,判断字符串中是否包含另一个字符串函数strpossubstr_count($haystack, $needle [,$o ...

  5. 字符串查找函数(BF)

    //模拟字符串定位函数 // s: abcbbghi // t: ghi // 返回6 #include <iostream> #include <string> #inclu ...

  6. 字符串查找函数 find()函数

    find()函数可以帮助你在两个字符串之间,查找很多他们的关系... #include<iostream> #include<string> using namespace s ...

  7. Lua 字符串查找函数 string.find(s, pattern [, init [, plain]] )【转】

    函数原型 string.find(s, pattern [, init [, plain]] ) s: 源字符串 pattern: 待搜索模式串 init: 可选, 起始位置 plain: 我没用过 ...

  8. 浅析JavaScript的字符串查找函数:indexOf和search

    语法 ①indexOf:方法可返回某个指定的字符串值在长字符串中首次出现的位置.如果被查找字符串没有找到,返回-1. indexOf 说明:该方法将从头到尾地检索字符串 stringObject,看它 ...

  9. 【pyhon】Python里的字符串查找函数find和java,js里的indexOf相似,找到返回序号,找不到返回-1

    # 例子: target='www.163.com' ')) ')==-1: print('263不存在于字符串'+target+'中') 运行: C:\Users\horn1\Desktop\pyt ...

随机推荐

  1. Java消息队列ActiveMQ (一)--JMS基本概念

    摘要:The Java Message Service (JMS) API is a messaging standard that allows application components bas ...

  2. POJ 2516 Minimum Cost (KM最优匹配)

    题意:有N家家店,每家店都对K种货物有需求:同时有M家仓库,对K钟货物有供应.对于每种货物,每个仓库送至每家店都有自己的单位费用.求满足所有店所有货物的最小费用 分析:对于每一种货物,如果总需求大于总 ...

  3. Leaflet API 翻译(二)

    摘自:http://www.ithao123.cn/content-824673.html L.Point 显示以像素为单位的点的x,y坐标. 所以接受点对象的leaflet方法和选项都也接受他们简单 ...

  4. flex NaN

    如果该值为NaN(非数字),则返回true:否则返回false.public function isNaN(num:Number):Boolean 举例:NaN值不是int或uint数据类型的成员.f ...

  5. IDEA MAVEN Project 显示问题

    今天正常打开idea,却发现maven窗口找不到了:试了这些方法 首先idea自带了maven控件,不像Eclipse还需要下载控件,如果你以前有maven在右边,出于某种原因,消失找不到 了,你可以 ...

  6. dubbo应用

    一.安装配置 cd /usr/local/ wget http://www.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar. ...

  7. zabbix安装配置agent程序之agent配置文件详解

    安装zabbix-agent http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/ 下载:zabbix-agent-3.2.0-1.el6.x86_64.r ...

  8. 并发-CopyOnWrite源码分析

    CopyOnWrite源码分析 参考: https://blog.csdn.net/linsongbin1/article/details/54581787 http://ifeve.com/java ...

  9. Dev控件-gridview的属性说明

    说明 Options OptionsBehavior 视图的行为选项 AllowIncrementalSearch 允许用户通过输入想得到的列值来定位行 AllowPartialRedrawOnScr ...

  10. virtualbox ubuntu下ssh连接

    一.首先Ubuntu中安装ssh服务器 Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情,需要的命令只有一条: sudo apt-get install openssh-ser ...