目录
一:字符分类函数
二:字符转换函数
三:strlen函数的模拟和实现
3.1strlen函数的介绍和使用
3.2strlen函数的模拟实现
四:strcpy函数的使用和模拟
4.1strcpy函数的介绍和使用
4.2strcpy的模拟实现
五:strcat函数的使用和模拟
5.1strcat函数的使用
5.2strcat函数的模拟
六:strcmp函数的使用和模拟
6.1strcmp函数的介绍和使用
6.2strcmp函数的模拟
七:strncpy函数的使用和模拟
7.2strncpy函数的模拟
八:strncat函数的使用和模拟
8.1strncat函数的使用
8.2strncat函数的模拟
九:strncmp函数的使用
十:strstr的使用和模拟实现
10.1 strstr函数的介绍和使用
10.2strstr函数的模拟实现
十一:strtok函数的使用
十二:strerror函数的使用
在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了一系列库函数,接下来我将讲解一下这些函数的基本用法。
函数 | 如果它的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空白‘ ’,换页‘\f’, 换行‘\n’, 回车‘\r’, 制表符‘\t’, 或者垂直制表符‘\v’ |
isdigit | 十六进制数字‘0’~‘9’(字符) |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母:a~z,大写字母:A~Z |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 小写字母a~z或者大写字母A~Z |
isalnum | 字母或者数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraphy | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写
int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写
size_t strlen ( const char * str );
• strlen的使用需要包含头文件
使用:
#include
#include
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;
}
上述代码,大家认为结果是什么?str1的长度是6,而str2的长度是3,那么strlen(str2)-strlen(str1)的结果应该是-3,那就应该是走else语句,那结果真的是这样吗?
通过打印结果可以看出,走的是if语句,这是为什么呢?因为strlen函数的返回值是无符号型整数,那么-3作为无符号整数时是非常大的整数,那么自然就会走if语句,如果想要得到正确答案,需要将strlen的结果强制转化成int型
字符串的拷贝
char* strcpy(char * destination, const char * source );
字符串的拷贝
字符串比较
7.1strncpy函数的介绍
char * strncpy ( char * destination, const char * source, size_t num );
char * strncat ( char * destination, const char * source, size_t num );
int strncmp ( const char * str1, const char * str2, size_t num );
在一个字符串中找另一个字符串
char * strstr ( const char * str1, const char * str2);
char * strtok ( char * str, const char * sep);
还可以用循环
char * strerror ( int errnum );
#include
#include
#include
//我们打印⼀下0~10这些错误码对应的信息
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
printf("%s\n", strerror(i));
}
return 0;
}
举例:
#include
#include
#include
int main ()
{
FILE * pFile;
pFile = fopen ("unexist.ent","r");
if (pFile == NULL)
printf ("Error opening file unexist.ent: %s\n", strerror(errno));
return 0;
}
输出:Error opening file unexist.ent: No such file or directory
#include
#include
#include
int main ()
{
FILE * pFile;
pFile = fopen ("unexist.ent","r");
if (pFile == NULL)
perror("Error opening file unexist.ent");
return 0;
}
输出:Error opening file unexist.ent: No such file or directory
对于strerror函数的相关代码,不需要完全现在就非常理解,只要从中理解到它的作用就可以了