C语言标准提供了许多处理字符串的函数。
字符串长度
size_t strlen( const char *str );
strlen函数返回字符串的长度,不包括’\0′
也就是从str指向的字符开始向后数,遇到’\0’就会结束。
例如”Hello”字符串长度是5.
字符串比较函数
int strcmp( const char *lhs, const char *rhs );
strcmp函数比较lhs和rhs两个字符串,按照字典中的顺序,返回值是 第一个字符串 – 第二个字符串
如果返回值是0,则两个字符串相等。
如果返回值是正数,则第一个字符串在字典中(机器编码)在第二个字符串后面。
如果返回值是负数,则第一个字符串在字典中(机器编码)在第二个字符串前面。
如果两个字符串开始的字母相等,则会继续下一个字母,一直到两边不匹配 或者 某一个字符串遇到’\0’为止。
int strncmp( const char *lhs, const char *rhs, size_t count );
多加了一个参数count,指定比较前count个字符。
字符串复制
char *strcpy( char *dest, const char *src );
将src指向的字符串复制到dest指向的地址,包括最后的’\0′ 。如果src很长(一直遇不到’\0’),则会发生未知结果。
注意:必须给dest指向的地方分配内存。
返回值:strcpy的返回值是第一个参数dest的值。
char *strncpy( char *dest, const char *src, size_t count );
strncpy第三个参数 指定最多复制多少个字符。
如果src的长度小于count ,则该函数作用和strcpy相同。
如果src的长度大于count,则会将src的前count个字符复制进dest,这时dest末尾没有结束符’\0′.因此经常用这种形式
1 2 |
strncpy(dest, src, count); dest[count] = '\0'; |
字符串拼接函数
char *strcat( char *dest, const char *src );
strcat函数将src处的字符串复制到dest字符串的结尾后面(即dest字符串后面的’\0’处)。
char *strncat( char *dest, const char *src, size_t count );
多了一个参数count指定最多在dest末尾加上多少个字符。