先看一下字符串函数一览表
一、strlen(求字符串长度)
声明:size_t strlen ( const char * str );
strlen统计的是‘/0’之前的字符个数,到‘/0’就结束了。
注意 函数的返回值为size_t,是⽆符号的
使用:在使用时需要包含头文件<string.h>
模拟:
二、长度不受限制的字符串函数
(1)strcpy(复制字符串函数)
声明:char* strcpy(char * destination, const char * source );
注意: strcpy在使用时必须保证目标函数足够大,以确保源字符串能够放入(防止越界访问),它会将源字符串一个一个搬运,以‘\0’结束,并将‘\0'拷贝到目标空间。 目标空间必须可修改(所以就不能用const修饰了)。
如果没有'\0' strcpy就不知道什么时候结束拷贝
使用:
模拟:
(2)strcat(字符串连接)
声明:char * strcat ( char * destination, const char * source );
strcat会将源字符串追加到目标函数的尾部。
注意:目标字符串中必须含有’\0‘否则不知道从哪里开始追加,源字符串必须以'\0‘结束,不然因为程序不知道追加到哪里停止。在连接时会覆盖目标函数中的’\0‘,并在合并的结尾加一个'\0'。 必须保证目标函数足够大,以确保源字符串能够放入。
使用:在使用时需要包含头文件<string.h>
模拟:
(3)strcmp(字符串的比较)
声明:int strcmp ( const char * str1, const char * str2 );
strcmp在比较时是根据对应位置上不同字符串的大小来确定的,对每一对应位置上的字符的ASCII码值的⼤⼩进行比较,直到发现不相等位置。
第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字
第⼀个字符串等于第⼆个字符串,则返回0
第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字
注意:返回的时大于0或小于0的数,而非1或-1.
使用:在使用时要包含头文件<string.h>
模拟:
三、长度受限制的字符串函数
(1)strncpy(长度受限制的复制字符串函数)
声明:char * strncpy ( char * destination, const char * source, size_t num );
这里的前两个类型和strcpy函数的参数类型一致,一个指针存放目标字符串地址,一个指针存放待拷贝的字符串地址,这里的参数多了一个size_t类型(无符号整型)的num,是用来控制拷贝字符个数的,这里的num是几就从source中拷贝几个字符串到destination中。
注意:如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个
使用:
模拟:
(2)strncat(长度受限制的字符串追加)
声明:char * strncat ( char * destination, const char * source, size_t num );
strncat会将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个 \0 字符。
注意:如果source指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾
使用:
模拟:
(3)strncmp(长度受限制的字符串拷贝)
声明:int strncmp ( const char * str1, const char * str2, size_t num );
strncmp在使用时⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0。
使用:
模拟:
四、strsrt(字符串查找)
声明:char * strstr ( const char * str1, const char * str2);
在str1查找整个str2第一次出现位置,并返回一个指向该位置的指针。如果str2没有完整地出现在str1的任何地方,函数返回NULL指针。如果str2是一个空字符串,函数返回str1指针。
使用:
模拟:
五、strtok(字符串分割函数)
声明:char * strtok ( char * str, const char * sep);
sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合
第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标
记。
strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。(注:
strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容
并且可修改。)
strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串
中的位置。
strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标
记。
如果字符串中不存在更多的标记,则返回 NULL 指针
六、strerror(错误信息报告)
参数及返回类型:char * strerror ( int errnum );
strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来
使用:
总:如果写的有问题欢迎在评论区进行指导。