字符函数和字符串函数(函数的模拟实现请前往gitte获取源代码)(文章结尾有链接)
1:字符分类函数
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符。
这些函数的使用要包含对应的头文件是ctype.h
2:字符转换函数
C语言提供了2个字符转换函数
tolower和toupper直接实现字符大小写的转换。
3:strlen的模拟实现(使用已经在和前面的sizeof区别说明了)
注意点:(size_t strlen(const char * str);)
1:字符串以'\0'为结束标志,strlen会返回 除'\0'以前的字符个数
2:参数指向的字符串必须以'\0'结束
3:函数返回类型为size_t类型,无符号整型
4:strcpy的模拟实现(字符拷贝函数)
char* strcpy(char * destination, const char * source);
注意:
1:源字符串必须以'\0'结束
2:会讲源字符串中的'\0'拷贝到目标空间
3:目标空间必须足够大,以确保能存放源字符串
4:目标空间必须可修改
5:strcat的模拟实现(字符追加函数)
char* strcat(char * destination, const char * source);
注意:
1:源字符串必须以'\0'结尾
2:目标字符串中也要有'\0',否则不知道从哪里追加
3:目标空间必须足够大,能容纳源字符串的内容
4:目标空间必须可修改
6:strcmp的模拟实现(字符比较函数)
int strcmp( const char * str1,,const char * str2);
注意点:
1:返回值为int
2:返回值在不同编译器上不同
3:模拟实现我们不使用一般编译器上的1,-1,0我们使用字符ASCII码值的差作为返回值
7:strstr的使用和模拟实现
char * strstr (const char * str1,const char * str2);
使用:函数返回字符串str2在字符串str1中第一次出现的位置;
字符串的比较匹配不包含\0字符,以\0作为结束标志。
8:strtok的使用(不模拟实现)
char * strtok(char * str, const char * sep);
注意:
1:sep参数指向一个字符串,定义了用做分隔符的字符集合
2:第一个参数指定一个字符串,包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记
3:strtok函数会找到str的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。
4:strtok会改变被操作数的字符串,所以被strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。
5:strtok的第一个参数不为NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置
6:strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置2开始,查找下一个标记
7:如果字符串中不存在更多标记,则返回NULL指针
function_true1/11_12.c · 思麟/CSDN_code - 码云 - 开源中国https://gitee.com/silin-c/csdn_code/blob/master/function_true1/11_12.c