C 字符串相关的库函数
字符串操作函数
size_t
strlen( char *string );
返回字符串长度
char*
strcpy( char *dst, char const *src );
将src复制到dst
char*
strcat( char *dst, char const *src );
将src接到dst后面
int
strcmp( char const *s1, char const *s2 );
s1 < s2, 返回正值
s1 > s2, 返回负值
s1 = s2, 返回零
char*
strncpy( char *dst, char const *src, size_t len );
char*
strncat( char *dst, char const *src, size_t len );
int
strncmp( char const *s1, char const *s2, size_t len );
限制长度的字符串操作函数
字符串查找函数
char*
strchr( char const *str, int ch );
char*
strrchr( char const *str, int ch );
- strchr从头向尾找,找到了返回一个指向目标字符的指针,找不到返回NULL
- strrchr从尾向头找,找到了返回指针,找不到返回NULL
char*
strpbrk( char const *str, char const *group );
strpbrk在str字符串中查找,找到gruop中任意一个字符则返回指针,找不到返回NULL
char*
strstr( char const *s1, char const *s2 );
strstr在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针。
size_t
strspn( char const *str, char const *group );
size_t
strcspn( char const *str, char const *group );
- strspn返回str中第一个不包含在group的下标
- strcspn返回str中第一个包含在group的下标,都不存在返回
'\0'
的下标
char*
strtok( char *str, char const *sep );
找到第一个空白标记(如空格、回车、缩进),将其设置为\0(后面的内容仍然保留),然后返回一个指向这个标记的指针。
如果strtok函数的第一个参数是NULL,函数在同一个字符串中从这个被保存的位置开始查找下一个标记。
字符类型函数
#include <ctype.h>
isspace() //空白字符
isdigit() //十进制数
isxdigit() //十六进制数, 字母不区分大小写
islower() //小写字母
isupper() //大写字母
isalpha() //字母
isalnum() //字母或数字
ispunct() //标点符号
int
tolower( int ch );
大写转小写
int
toupper( int ch );
小写转大写
内存操作
void*
memcpy( void *dst, void const *src, size_t len );
//可用于复制数组
void*
memmove( void *dst, void const *src, size_t len );
void*
memcmp( void const *a, void const *b, size_t len );
//按照无符号字符逐字节比较
void*
memchr( void const *a, int ch, size_t len );
void*
memset( void *a, int ch, size_t len );
//把a的前len个字节设置为字符值ch, 代替自己写一个循环
字符串转换为数值类型
字符串转换为整数
int
atoi( char const *string );
long int
atol( char const *string );
函数会忽略前导空白字符,当字符串中出现非数字的非法字符时,停止转换
字符串转换为浮点数
double
atof( char const *string );
字符的格式化转换
int
sscanf( char const *string, char const *format, ... );
按照format
给出的格式转换string
写入a
int
sprintf( char *buffer, char const *format, ... );
按照format
给出的格式转换a
写入string