C/C++字符串查找函数全面了解

C/C++ string库(string.h)提供了几个字符串查找函数,如下:

memchr 在指定内存里定位给定字符

strchr 在指定字符串里定位给定字符

strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量

strrchr 在字符串里定位给定字符最后一次出现的位置

strpbrk 在字符串str1里定位字符串str2里任意一个首次出现的字符

strspn 返回字符串str1从开始字符到第一个不在str2中的字符个数

strstr 在字符串str1中定位字符串str2首次出现的位置

函数说明:

1、memchr

原型:const void * memchr ( const void * ptr, int value, size_t num);

void * memchr ( void * ptr, int value, size_t num);

参数:ptr,待查找的内存指针;

value,要查找的值;

num,内存大小。

说明:在ptr指向的内存中查找value,返回指向和value首次匹配的元素指针,如果没有找到,返回NULL指针。

2、strchr

原型:const char * strchr ( const char * str, int character);

char * strchr ( char * str, int character);

参数:str,待查找字符串指针;

character,要查找的值。

说明:在字符串str中查找character,返回指向和character首次匹配的元素指针,如果没有找到,返回NULL指针。

3、strcspn

原型:size_t strcspn ( const char * str1, const char * str2);

参数:str1,待查找的字符串指针;

str2,要查找的字符串指针。

说明:在str1中查找str2中的字符,返回找到str2中任意一个字符时已查找的字符个数。

4、strrchr

原型:const char * strrchr ( const char * str, int character);

char * strrchr ( char * str, int character);

参数:str,待查找的字符串指针;

character,要查找的值。

说明:在str中查找character,返回指向与character最后一次匹配的元素的指针,如果没有找到,返回NULL指针。

5、strpbrk

原型:const char * strpbrk (const char * str1, const char * str2);

char * strpbrk ( char * str1, const char * str2);

参数:在str1中查找str2中任意一个字符,返回指向与首次出现的str2中的任意一个字符匹配的元素的指针,如果没有找到,返回NULL指针。

6、strspn

原型:size_t strspn ( const char * str1, const char * str2);

参数:str1,待查找的字符串指针;

str2,要查找的字符串指针。

说明:从str1的第一个字符开始算起,直到出现一个不在str2中的字符为止,返回字符个数。

7、strstr

原型:const char * strstr ( const char * str1, cosnt char *str2);

char * strstr ( char * str1, const char * str2);

参数:str1,待查找的字符串指针;

str2,要查找的字符串指针。

说明:在str1中查找匹配str2的子串,并返回指向首次匹配时的第一个元素指针。如果没有找到,返回NULL指针。

以上这篇C/C++字符串查找函数全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++的字符串分割函数的使用详解

    经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全,可以使用strtok_r替代. 示例: //借助strtok实现split #include <st

  • C++编程中用put输出单个字符和cin输入流的用法

    用C++流成员函数put输出单个字符 在程序中一般用cout和插入运算符"<<"实现输出,cout流在内存中有相应的缓冲区.有时用户还有特殊的输出要求,例如只输出一个字符.ostream类除了提供上面介绍过的用于格式控制的成员函数外,还提供了专用于输出单个字符的成员函数put.如: cout.put('a'); 调用该函数的结果是在屏幕上显示一个字符a.put函数的参数可以是字符或字符的ASCII代码(也可以是一个整型表达式).如 cout.put(65 + 32); 也显

  • c++ cin 作为while条件(详解)

    本文一切测试在windows clion中进行 在clion中,ctrl +z并不是文件结束符 在cmd中运行,只需要ctrl+z再加回车就可以得到正确结果 1.cin cin是C++编程语言中的标准输入流对象,即istream类的对象.cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘.此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream 类的对象.这里的标准输出指的是终端键盘,标准错误输出指的是终端的屏幕. 在理解cin功能时

  • C,C++中常用的操作字符串的函数

    小小的做一个总结 函数名: stpcpy 功 能: 拷贝一个字符串到另一个,遇到'\0'时停止拷贝,destin要有足够大的空间 用 法: char *stpcpy(char *destin, char *source);   函数名: strcat 功 能: 字符串拼接函数,注意,destin要有足够大的空间 用 法: char *strcat(char *destin, char *source); 函数名: strchr 功 能: 在一个串中查找给定字符的第一个匹配之处,找不到返回NULL

  • C/C++字符串函数之复制函数详解

    突然发现对字符串函数缺乏系统的了解,所以花了一点时间专门整理下,在此记录之,以方便自己及有需要的人使用. C/C++字符串函数的头文件:string.h 复制函数主要有4个,如下: 1.char * strcpy(char* destination,const char * source); 2.char* strncpy(char* destination,const char* source,size_t num); 3.void * memcpy(void* destination,con

  • c++中cin/cout与scanf/printf的区别比较

    cin .cout 基本说明: cin代表标准输入设备,使用提取运算符 ">>" 从设备键盘取得数据,送到输入流对象cin中,然后送到内存. cin是输入流,cout是输出流,重载了">>"."<<"运算符,包含在头文件<iostream>中. 先把要输出的东西存入缓冲区,再输出,导致效率降低,cin是自动判断你的变量类型,比如一个char数据只能用默认的char方法取数据. scanf .prin

  • C++处理键盘输入的方法

    本文实例讲述了C++处理键盘输入的方法,可实现简单处理键盘输入,分享给大家供大家参考.具体实现方法如下: 需要响应WM_CHAR消息: 复制代码 代码如下: #include <string> static std::string str; 在wm_char中: 复制代码 代码如下: str = str + char(wParam);  ::InvalidateRect(hWnd, NULL, 0);  return 0; 在wm_paint中: 复制代码 代码如下: case WM_PAIN

  • 基于C++ cin、cin.get()、cin.getline()、getline()、gets()函数的使用详解

    1.cin 2.cin.get() 3.cin.getline() 4.getline() 5.gets() 6.getchar() 附:cin.ignore();  cin.get()//跳过一个字符,例如不想要的回车,空格等字符 1.cin>>          用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () {    int a,b;    cin>>a>&g

  • C++对cin输入字符的判断及分段函数处理方法示例

    本文实例讲述了C++对cin输入字符的判断及分段函数处理方法.分享给大家供大家参考,具体如下: 这两个本来也不是什么问题,然而真正遇到还是有地方可以研究的.首先是C++对于cin输入的判断,有时候你定义了一个整形,然后就是有些人就喜欢给你乱输个字符串进去,你必须处理一下,这里不像Java用抛出异常处理用户输入,也不像JavaScript用isNaN来判断,对此可参考前面的一篇<JavaScript对数字的判断与处理实例分析>.C++是用cin.fail()来判断. 至于分段函数的处理,比如要你

  • 浅谈c++中的while(cin)问题

    xp系统中利用dev-cpp进行编程,语句while(cin>>str),str是个string类型,在一行中输入几个string,末位加个ctrl+z,输入没有结束,除非出入换行后,再输入ctrl+z才能跳出输入.一直不明白未什么,解释请看下. 输入缓冲是行缓冲.当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储.每当按下回车键后,cin.get()   就会检测输入缓冲区中是否有了可读的数据.cin.get()   还会对键盘上是否有作为流结束标志的   Ctrl+Z 

  • 解析C++中的字符串处理函数和指针

    C++字符串处理函数 字符串连接函数 strcat 其函数原型为 strcat(char[],const char[]); strcat是string catenate(字符串连接)的缩写.该函数有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面.第二个字符数组被指定为const,以保证该数组中的内容不会在函数调用期间修改.连接后的字符串放在第一个字符数组中,函数调用后得到的函数值,就是第一个字符数组的地址.例如: char str1[30]=″Peo

随机推荐