您的位置:首页 > 其它

C中常用的字符、字符串处理函数

2017-08-06 13:43 295 查看
C中常用的字符、字符串处理函数

(注:size_t定义在stddef.h中,代表无符号整数。)

关于查找:

(1) size_t  strspn( char const *str, char const *group);  p182

返回str起始部分匹配group中任意字符的字符数(也可理解为str中第一个不在group中出现的字符的索引值)。

如下:int  len1 = strspn(“1234567890”, “af123af”);  //len1 = 3

(2) size_t  strcspn( char const *str, char const *group);

返回str起始部分不匹配group中任意字符的字符数(str中第一个在group中出现的字符的索引值)。

 如下: int  n = strcspn( “Hello, world”, “Welcome you” );  //n = 1

(注: 若找不到,则返回str的尾部。)

(3) char  *strpbrk(char const *str, char const *group);

返回str中第一个与group中任何一个字符相匹配的字符的地址(指针)。

(注:若没找到,返回NULL。)

(注: 它与strcspn的区别是,前者返回指针,后者返回下标值。)

(4) char  *strctr( char const *str, int ch);

(5) char  *strrchr( char const *str, int ch);

前者返回在str中第一次出现的字符ch(int型)的位置,后者返回在str中最后一次出现的ch的位置。

     

(6) char  *strstr ( char const *s1, char const *s2);

在s1中查找整个子字符串s2第一次出现的起始位置。

(注: 若找不到,返回NULL ,若s2是空字符串,返回s1。)

关于长度:

(7) size_t  strlen( char const *string );

返回string包含的字符的个数。

           (注:不包括\0的长度。写 int a = strlen(“ABC”);或int a = strlen(“ABC\0”);

            结果都为3。)  

关于复制与连接:

(8) char   *strcpy( char *dst, char const *str);

将src字符串复制到dst中(连带NUL字节)。返回指向dst数组的指针。原来dst中的内容被覆盖。

(注: 若src和dst在内存中是重叠的,则结果是未定义的。)

(注: 不要让str的长度大于dst的长度。)

(9) char  *strcat ( char *dst, char const *src );

将src添加到dst的末尾,返回指向dst数组的指针。

(注: 若重叠,未定义。)

(注: 要保证dst剩余空间足够。)

关于比较:

(10) int  strcmp ( char const *s1, char const *s2 );

字典比较。比较2个字符串中最先不匹配的字符的大小(依据字符集)。

若s1 < s2, 返回小于0的值;若s1 > s2, 返回大于0的值;

若s1 = s2,返回0。

长度受限的字符串函数:

(11) char  *strncpy( char *dst, char const *str, size_t len );

(12) char  *strncat( char *dst, char const *str, size_t len );

(13) int  strncmp( char const *s1, char const *s2, size_t len );

功能类似于前3者,但有一些区别和注意点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: