目录
一、求字符串长度
1.strlen
功能:以'\0'作为结束标志,计算'\0'之前字符的个数(不包含'\0')。
注意:函数的返回值是size_t,是无符号的。
举例:
注意:
#include<stdio.h>
#include<string.h>
int main()
{
const char*str1 = "abcdef";
const char*str2 = "bbb";
if(strlen(str2)-strlen(str1)>0)
{
printf("str2>str1\n");
}
else
{
printf("srt1>str2\n");
}
return 0;
}
输出结果:str2>str1。因为strlen返回值是无符号的,所以一定会是一个大于0的数。
二、长度不受限制的字符串函数
1.strcpy
功能:将source中的字符串拷贝到destination中,包括'\0'。
注意:
•源字符串必须以 '\0' 结束。
•目标空间必须足够大,以确保能存放源字符串。
•目标空间必须可变。
举例:
2.strcat
功能:将source中的字符串追加到destination中字符串的后面 。destination中的'\0'会被source中的第一个字符覆盖,并且在形成的新字符串末尾包含一个'\0'。
注意:
•源字符串必须以 '\0' 结束。
•目标空间必须有足够的大,能容纳下源字符串的内容。
•目标空间必须可修改。 字符串自己给自己追加。
举例:
3.strcmp
功能:比较str1和str2两个字符串的大小,不是比较长度,而是比较对应位置字符的大小,即ASCII码值的大小。
返回值:
规定:
•第一个字符串大于第二个字符串,则返回大于0的数字
•第一个字符串等于第二个字符串,则返回0
•第一个字符串小于第二个字符串,则返回小于0的数字
举例:
三、长度受限制的字符串函数
1.strncpy
功能:拷贝num个字符从源字符串到目标空间。 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加'\0',直到num个。
注意:
•让拷贝几个就拷贝几个,不会像strcpy一样将'\0'拷贝过去。
举例:
(1)
(2)
2.strncat
功能:在destination字符串后追加num个source中的字符。
注意:
•会把'\0'也追加过来
•如果追加的数目超过源字符串长度,有几个就追加几个,再加上一个'\0'。
举例:
(1)
(2)
3.strncmp
功能:比较num个str1和str2中字符的大小(ASCII码值),比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完。
返回值:
规定:
•第一个字符串大于第二个字符串,则返回大于0的数字
•第一个字符串等于第二个字符串,则返回0
•第一个字符串小于第二个字符串,则返回小于0的数字
举例:
四、字符串查找
1.strstr
功能:在str1中找str2,返回str1中str2第一次出现的位置。
举例:
2.strtok
功能:把str字符串以delimiters为标记分割开。
•delimiters参数是个字符串,定义了用作分隔符的字符集合 第一个参数指定一个字符串,它包含了0个或者多个由delimiters字符串中一个或者多个分隔符分割的标记。
•strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。(注: strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改。)
•strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串 中的位置。
•strtok函数的第一个参数为 NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标记。
举例:
五、错误信息报告
1.strerror
功能:将错误码作为参数,返回错误信息。
举例:
2.perror
功能:直接将错误信息打印出来。
举例: