#include <string.h>  
char *strchr(const char *s, int c);
 
The strchr() function returns a pointer to the first occurrence of the character c in the string s.
char *strrchr(const char *s, int c); The strrchr() function returns a pointer to the last occurrence of the character c in the string s.
size_t strspn(const char *s, const char *accept); The strspn() function calculates the length (in bytes) of the initial segment of s which consists entirely of bytes in accept.
size_t strcspn(const char *s, const char *reject); The strcspn() function calculates the length of the initial segment of s which consists entirely of bytes not in reject.
char *strpbrk(const char *s, const char *accept); The strpbrk() function returns a pointer to the byte in s that matches one of the bytes in accept, or NULL if no such byte is found.
char *strstr(const char *haystack, const char *needle); These functions return a pointer to the beginning of the located substring, or NULL if the substring is not found.
 
 
 
char *strchr(const char *s, int c);:    记录c第一次在s出现的位置,并记录当前指针
char *strrchr(const char *s, int c);:   记录c最后一次出现在s的指针,并记录当前指针位置
-------------------------------------------------------
int main(int argc, char **argv) {

    const char *buf="hello strchr";
char *p1;
char *p2;
p1=strchr(buf,'l'); //记录字符l第一次出现的位置,并范围第一次出现该字符的指针
printf("%s\n",p1); //llo strchr p2=strrchr(buf,'l');//记录字符最后一次出现的位置,并范围第一次出现该字符的指针
printf("%s\n",p2); //lo strchr }
size_t strspn(const char *s, const char *accept);:
size_t strcspn(const char *s, const char *reject);:
-------------------------------------------------------
int main(int argc, char **argv) {

    const char *buf="hello world";
int len; /*在buf中寻找buf2中的任意字符,也就是说,在buf中,如果碰到buf2中的任意字符,就结束寻找,并记录之前不相等部分的字符数*/
/*比如,在buf中有个空格是buf2可以匹配到的,在空格之前有5个字节是不匹配的,所以返回值为5*/
/*统计不同的数,直到出现了buf2中存在的字符*/
len=strcspn(buf,"\t\n,.?! "); //
printf("scpn:%d\n",len); /*统计相同的数,直到出现了buf2里面不存在的字符*/
len=strspn(buf,"abcdefghijklmn"); //hell 都在buf2中出现过,所以开始统计,到 o,buf2中没有,返回到停止之前统计的字符数
printf("spn:%d\n",len); }
 
char *strpbrk(const char *s, const char *accept);:s中只要出现匹配的任意字符,就返回相应的指针位置
-------------------------------------------------------
匹配任意字符出现就返回
          int main(int argc, char **argv) {
const char *buf="hello,kmist"; char *p; p = strpbrk(buf,"abcdefg");
printf("%s\n",p); //ello,kmist
}
char *strstr(const char *haystack, const char *needle);:
-------------------------------------------------------
匹配到全部字符串返回指针
            int main(int argc, char **argv) {

                const char *buf="hello,kmist";

                char *p;

                p = strstr(buf,"kmi");
printf("%s\n",p); //kmist ,如果没有就返回null
}

C语言字符篇(四)字符串查找函数的更多相关文章

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

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

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

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

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

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

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

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

  5. C语言字符篇(二)字符串处理函数

    字符串处理函数 1. 拷贝 strcpy 2. 追加 strcat   #include <string.h>   char *strcpy(char *dest, const char ...

  6. C语言中常用的字符串处理函数总结

    C语言中字符串处理函数备注 此文仅用于自己研究和记录 字符串处理函数 1. char *gets(char *s); #include<stdio.h> 功能: 从标准输入读入字符,并保存 ...

  7. c语言字符数组与字符串的使用详解

    转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ...

  8. C语言中常用的字符串操作函数

    程序开头要声明 #include <string.h> 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char ...

  9. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

    怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...

  10. C语言字符数组和字符串

    用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ' ', 'p', 'r', 'o' ...

随机推荐

  1. 关于objc.io

    推荐一个特别棒的项目:objc.io 原版地址:http://www.objc.io/ 中国版地址:http://objccn.io/ 欢迎大家前去学习,如果你有不错的东西,也欢迎跟帖分享.

  2. echarts自适应宽度

    const myChartContainer = document.getElementById( id ); const resizeMyChartContainer = function () { ...

  3. Implementation with Java

    Implementation with Java From:http://jcsc.sourceforge.net In general, follow the Sun coding conventi ...

  4. SQL Server 2008R2 18456错误解决方案

    SQL Server 2008R2 18456错误解决方案 微软解释说,因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似下面的消息将返回到客户端:“用户 '<user_name> ...

  5. java环境变量配置备忘录

    用鼠标右击“我的电脑”->属性->高级->环境变量系统变量->新建->变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.6.0_1 ...

  6. 关于java@Override错误

    重写的接口的方法,编译的时候一直报@override is not override a method from superclass,查了一下资料,这个@override报错是因为版本的原因. 在J ...

  7. vscode:快速生成html的方法

    第一步:在空文档中输入! 第二步:按下tab键. 以上

  8. Linux Mint,Ubuntu 18 ,Deepin15.7 安装mysql 没有提示输入密码,修改root用户密码过程

    刚刚装Deepin15.7 和 MySQL5.7 发现没有提示用户输入密码的过程(近日发现Linux Mint 和 Ubuntu18 也适用) 百度了一大堆如何修改root密码 也没什么卵用,终于这篇 ...

  9. CRUD全栈式编程概述

    业务场景 CRUD,从数据驱动的角度几乎所有的的业务都是在做这样的事情.  几乎所有的操作都是在做对表的增删改查.  假设我们将数据库数据规个类:  分为基础/配置数据和业务/增长数据,或者说静态数据 ...

  10. httpclient开启代理,获取java中请求的url

    背景:在httpclent做post或者get请求时,请求返回的数据总是和预想的不一致,但是有不知道怎么排查问题,经同事说httpclient可以设置代理,就可以获取请求前数据的一些问题,帮助我排查问 ...