教你如何建设一个模板网站,网站建设费进什么科目,网站的设计与应用论文,重庆建设工程信息网官字符函数和字符串函数
字符分类函数
大家知道字符是分为很多种类型的 就比如说’a’ ‘1’ A’等等#xff0c;所以我们需要一种函数来完成字符函数的分类 这就是字符分类函数
函数需要包含头文件ctype.h
函数的运行规则是#xff1a;如果符合下列参数就返回真
…字符函数和字符串函数
字符分类函数
大家知道字符是分为很多种类型的 就比如说’a’ ‘1’ A’等等所以我们需要一种函数来完成字符函数的分类 这就是字符分类函数
函数需要包含头文件ctype.h
函数的运行规则是如果符合下列参数就返回真
inscntrl控制任何字节isspace空白字符空格\f\n\r\t\visdigit十进制数字’0’~9’字符isxdigit十六进制数字包括十进制狮子字符小写字母a~f大写字母A到Fislower小写字母a~zisupper大写字母A~Zisalnum字母或者数字ispunct标点符号任何不属于数字或者字母的图形字符isgraph任何图形字符isprint任何可以打印字符包括图形字符和空白字符
我们该怎么使用这些函数呢
int isupper(int c )函数就是判断参数部分的c是否是大写字母 如果是大写字母就返回非零的整数如果不是大写则返回0
字符转换函数
什么是字符转换函数呢
就是可以将字符之间完成转换
int tolower (int c);//将参数传进去的大写字母转小写
int toupper (int c);//将参数传进去的小写字母转大写细讲strlen函数
之前我们了解过strlen函数是用来统计字符个数的
现在我们来细讲一下
strlen函数的形式
size_t strlen(const char *str);就是说返回值是size_t,如果我们想储存他的结果就是需要size_t类型的变量来储存值得注意的是size_t是无符号的就是没有正负之分
我们来模拟一下strlen函数更好的理解他
#include stdio.h
size_t m_strlen(char *p)
{size_t con 0;while (*p){p;con;}return con;}
int main()
{char arr[6] abcde;size_t a m_strlen(arr);printf(%zd, a);return 0;
}strcpy
strcpy就是将源字符串中的代码拷贝到目标字符串
char * strcpy(char *p,const char * pp);其中p是目标字符串pp是源字符串
运行过程是strcpy将目标字符串与原字符串一一替换直到替换到源字符串的/0部分 前提条件是目标函数的容量一定要足够大起码要放的下源字符串
那就模拟一下strcpy函数
#includestdio.h
void m_strcpy(char* p, char* pp)
{while (*p *pp){*p;*pp;if (*pp \0){//for循环一个字符打印后面的字符break;}}}
int main()
{char arr1[] abcdef;char arr2[] efg;m_strcpy(arr1, arr2);printf(%s, arr1);return 0;
}strcat
strcat函数的用法是将源函数追加到目标函数后面。细节如下:
源字符串必须以\0结尾因为追加的时候目标函数的\0会被取代如果没有则追加后的函数将没有\0目标字符也必须有\0因为如果没有就不知道从哪里追加目标函数的空间必须足够大不然会溢出
那我们就再模拟一下strcat函数
#includestdio.h
void m_strcat(char* a, char* b)
{char** p b;while (*a ! \0){a;}while (*b ! \0){*a *b;a;b;}*a *b;
}
int main()
{char arr1[10] abcd;char arr2[] aaa;m_strcat(arr1, arr2);printf(%s\n, arr1);return 0;
}strcmp
strcmp就是将两个字符串中的每个字符进行比较
如果第一个字符串大于第二个字符串则返回大于零的数字第一个字符串等于第二个字符串则返回零第一个字符串小于第二个字符串则返回小于零的数字
而判断两个字符串的大小是相同位置的ASCII码值将两个字符串同位置的字符一个一个的比较直到比较出不相同的一个字符如果都相同那么返回0
strn系列
其实字符函数还有strncpystrncatstrncmp他们与前面说的strcpystrcatstrcmp都有一点的不同那么不同的点是什么呢 那就是在传参时后面要多加一个size_t num
strncpychar * strncpy ( char * destination, const char * source, size_t num );strncat char * strncat ( char * destination, const char * source, size_t num );strncmpint strncmp ( const char * str1, const char * str2, size_t num );
后面的size_t num的意思都是最多操作多少个字符
假如说strncpy的后面传参的num是3意思是只3拷贝3个字符其他的函数的意思也基本一致。
strtok函数
strtok函数起摘取作用就是将一个字符串中用特定字符串分割的函数将分割的部分都摘取出来 strtok的表现形式
char * strtok ( char * str, const char * sep);实参sep指向了一个字符串定义了分割字符的集合 今天的知识讲解完啦如果觉得有用可以点一下赞和关注也可以先收藏以防需要时找不到哦当然如果作者写的哪里有问题欢迎指出我们一起进步 祝看到这里的人天天开心哦笔芯