前言:
(1).
C语言中对于字符和字符串的处理很是频繁,但是C语言本身没有字符串类型,字符串通常放在 常量字符串中或者字符数组 中。
(2).
字符串常量 适用于那些对其不做修改的字符串函数。
1 . 函数介绍
(1). strlen()函数:求字符串(字符数组)长度
函数返回值类型和相关参数:
size_t strlen ( const char * str );
(接收 常量字符指针 ,返回 无符号整数 )
注意事项:
(1).
字符串是以 '\0' 作为结束标志,需要 string.h 头文件,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。
(2).
参数指向的字符串必须要以 '\0' 结束(不然统计个数为随机值)。
(3).
注意函数的返回值为size_t,是无符号的( 易错 ),如下:
(4).
学会strlen函数的模拟实现(下面第2个模块有)
(2). strcpy()函数:拷贝字符串
函数返回值类型和相关参数:
char* strcpy(char * destination, const char * source );
(接收 目标空间指针 和 内容不能被修改的源字符串指针 ,返回 目标空间指针)
注意事项:
(1).
将 源字符串指针指向的字符串复制到 目标空间指针指向的空间 中,
包括 终止空字符,即 \0 ,并在该点停止。
(2).
源字符串必须以 '\0' 结束。
(3).
会将源字符串中的 '\0' 拷贝到目标空间。
(4).
目标空间必须足够大,以确保能存放源字符串。
(5).
目标空间必须可变。
(6).
学会strcpy函数的模拟实现(下面第2个模块有)
(3). strcat()函数:追加字符串到另一字符串后
函数返回值类型和相关参数:
char * strcat ( char * destination, const char * source );
(接收 目标空间指针 和 内容不能被修改的源字符串指针 ,返回 目标空间指针)
注意事项:
(1).
将源字符串的副本追加到目标字符串。
目的地中的 '\0' 被源字符串的第一个字符覆盖,
并且 '\0' 会在新字符串的末尾。
需要<string.h>头文件。
(2).
源字符串必须以 '\0' 结束。
(3).
目标空间必须有足够的大,能容纳下源字符串的内容。
(4).
目标空间必须可修改。
(5).
学会strlen函数的模拟实现(下面第2个模块有)
(4). strcmp()函数:比较两个字符串的大小
函数返回值类型和相关参数:
int strcmp ( const char * str1, const char * str2 );
(接收 两个常量字符串的首字符指针,返回 一个整数)
注意事项:
(1).
此函数开始比较时会比较每个字符串的第一个字符。
如果它们彼此相等,则继续比较下一对,
直到 字符不同 或比较完所有字符都相同为止。
(2). 标准规定:
第一个字符串的字符 大于 第二个字符串的字符,则返回 大于0 的数字
(假设 “abcdef” 和 “abc” 比较,abc都相等,第四次比较时 e>\0,那么"abcdef"更大,返回 大于0 的数字)
第一个字符串的字符 等于 第二个字符串的字符,则 返回0
(假设 “abc” 和 “abc” 比较,abc都相等,第四次比较时 \0==\0,返回 0)
第一个字符串的字符 小于 第二个字符串的字符,则返回 小于0 的数字
(假设 “abcdef” 和 “abq” 比较,a和b都相等,第三次比较时 c<q,那么"abq"更大,返回小于0 的数字)
(3).
学会strlen函数的模拟实现(下面第2个模块有)
(5). strncpy()函数:拷贝字符串的num个字符
函数返回值类型和相关参数:
char * strncpy ( char * destination, const char * source, size_t num );
(和 strcpy()函数 相同,只是参数多了个拷贝的字符个数)
注意事项:
(1).
将 源字符串指针 指向的 字符串前num个字符 复制到 目标空间指针 指向的空间 中,
包括 终止空字符,即 \0 ,并在该点停止。(和strcpy()函数类似,但限制了拷贝个数)
(2).
从源字符串拷贝num个字符到目标空间。
(3).
如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的空间后边追加0,直到num个。