处理字符串的库函数
长度不受限制的字符串函数
strlen()函数
简介
计算字符串长度。给定一个地址向后以字符类型寻找’\0’
函数声明
size_t strlen ( const char * str );
头文件
#include <string.h>
返回类型
返回字符串长度
注意事项
- 返回值是不包含’\0’的整数
- 返回类型是无符号整型
- 传入的字符串一定要包含\0
strcpy()函数
简介
将源头字符串拷贝至目标空间
函数声明
char * strcpy ( char * destination, const char * source );
返回值和返回类型
返回目标空间的首地址
头文件
#include <string.h>
注意事项
- 目标空间足够大
- 源头字符串需有\0
strcmp函数
简介
从第一个字符开始比较两个字符串是否相同
函数声明
int strcmp ( const char * str1, const char * str2 )
头文件
#include <string.h>
返回类型
- 返回值>0,代表相异那个位置的字符str1比str2大
- 返回值==0,代表两个字符串相等
- 返回值<0,代表相异那个位置的字符str1比str2小
strcat()函数
简介
在目标字符串之后追加字符串
函数声明
char * strcat ( char * destination, const char * source )//str2会覆盖掉str1的结束标识符
头文件
#include <string.h>
返回类型
返回目标字符串的首地址
注意事项
- 存放原字符串的空间一定要足够
- 不能追加自己,因为这样会将\0给覆盖掉不能终止函数
strstr函数
简介
返回在str1中第一个出现str2的字符的位置,如果str1中没有str2,返回空指针
函数声明
const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );
头文件
#include <string.h>
返回类型
返回在str1中第一个出现str2的字符的位置,如果str1中没有str2,返回空指针
strtok()函数
简介
通过标识符来分段字符串
函数声明
char * strtok ( char * str, const char * delimiters );
头文件
#include <string.h>
返回类型
- 如果找到标识符便返回返回起始位置的地址,并且将标识符覆盖为’\0’,并且保留’\0’的地址
- 如果找到’\0’,则返回空指针
注意事项
- strtok函数会记录标识符的位置,因此同一个字符串下一次在调用strtok()函数时只需传入空指针
长度受限制的字符串函数
strncmp()函数
简介
从第一个字符开始比较num的长度的字符是否相同
函数声明
int strncmp ( const char * str1, const char * str2, size_t num )
头文件
#iclude <string.h>
返回值和返回类型
- 返回值>0,代表相异那个位置的字符str1比str2大
- 返回值==0,代表两个字符串相等
- 返回值<0,代表相异那个位置的字符str1比str2小
注意事项
- 返回的是相异位置那个字符的相对大小,而非两个字符串的长度大小
strncat函数
简介
将源的前num个字符追加到目标
函数声明
char * strncat ( char * destination, const char * source, size_t num );
头文件
#include <string.h>
返回类型
返回目标字符串的首元素地址
注意事项
- 如果来源的字符串长度小于num则最多只能追加到来源的结束标识符
strncpy()函数
简介
拷贝源头字符串的num个字符
函数声明
char * strncpy ( char * destination, const char * source, size_t num );
返回值和返回类型
返回目标空间的首元素地址
注意事项
- 如果源头字符串的长度小于num,则少于num的字符数用’\0’代替