1. 字符串
包括零个或多个字符
以 0 即 '\0'字节结尾
字符串长度不包括 NULL
包括在头文件 string.h 中
2. strlen
size_t
strlen( char const *string)
{
int length;
for( length = 0; *string++ != '\0'; length++ )
return length;
}
注意事项: 返回值为无符号整数. 禁止使用 if( strlen(x) - strlen(y) >= 0 )...
3. 不受限制的字符串函数
使用这些函数时, 程序员必须保证结果字符串不会溢出这块内存
char *strcpy( char *dst, char const *src ); //dst将会被修改, 不能使用字符串常量; dst, src不能重叠
char *strcat( char *dst, char const *src ); //dst不能为NULL; dst, src不能重叠
char *strcmp( char const *s1, char const *s2 ); //
4. 长度受限的字符串函数
char *strncpy( char *dst, char const *src, size_t len ); //strlen(src) > len, dst将用NUL填充到len长度, 但 strlen(dst) 不变
char *strncat( char *dst, char const *src, size_t len ); //总是在结果字符串后面添加NUL字节, 但 strlen(dst) 不变
char *strncmp( char const *s1, char const *s2, size_t len ); //
5. 字符串查找
char *strchr( char const *str, int ch ); //查找ch第一次(最左边)出现位置
char *strrchr( char const *str, int ch ); //查找ch最后一次(最右边)出现位置
char *strstr( char const *s1, char const *s2 ); //查找s2第一次出现的位置
char *strtok( char *str, char const *sep ); //原理是将sep用NULL替换
char *strpbrk( char const *str, char const *group ); //查找 str 中的字符第一次在字符串中出现的位置, 返回指针
size_t strcspn( char const *str, char const *group ); //查找 str 中的字符第一次在字符串中出现的位置, 返回索引
size_t strspn( char const *str, char const *group ); //查找 str 中的字符第一次不在字符串中出现的位置, 返回索引
6. 错误信息
char *strerror( int error_number ); //
7. 字符操作
字符分类:int islower(int ch)
字符转换:int tolower( int ch )
8. 内存操作
字符串数据内部包括 0 时,用下面函数操作
void *memcpy( void *dst, void const *src, size_t length );
void *memmove( void *dst, void const *src, size_t length );
void *memcmp( void *dst, void const *src, size_t length );
void *memchr( void *dst, void const *src, size_t length );
void *memset( void *dst, void const *src, size_t length );