赞
踩
C/C++ string库(string.h)提供了几个字符串查找函数,如下:
memchr | 在指定内存里定位给定字符 |
strchr | 在指定字符串里定位给定字符 |
strcspn | 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 |
strrchr | 在字符串里定位给定字符最后一次出现的位置 |
strpbrk | 在字符串str1里定位字符串str2里任意一个首次出现的字符 |
strspn | 返回字符串str1从开始字符到第一个不在str2中的字符个数 |
strstr | 在字符串str1中定位字符串str2首次出现的位置 |
strRstrI | 在字符串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指针。
注释:
内存字节查找函数(memchr)和字符串查找函数(strchr)间的关系是前者包含后者,即内存字节查找函数(memchr)可以用于在任何数据类型(void *)的ptr中查找数据类型为int的参数值value,而字符串查找函数(strchr)则只能用于在char数据类型的str中查找数据类型为int的参数值character。
char *pstr=‘标准磁盘’;,则
strchr ( pstr,‘标’);或是memchr ( pstr,‘标’)运行结果如何?考虑到‘标’这个16bit编码值转换为int时会变成一个32bit的补码(即前16bit补1)。
参见:原码、补码说明以及char和unsigned char区别--最终版
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指针。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。