当前位置: 首页 > news >正文

cco网站素材微商城分销

cco网站素材,微商城分销,微信二次开发,外贸网站怎么建设系列文章目录 文章目录 系列文章目录前言1. 字符分类函数islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟#xff0c;如果是⼩写字⺟就返回⾮0的整数#xff0c;如果不是⼩写字⺟#xff0c;则返回0。 2. 字符转换函数3. strlen的使⽤和…系列文章目录 文章目录 系列文章目录前言1. 字符分类函数islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟如果是⼩写字⺟就返回⾮0的整数如果不是⼩写字⺟则返回0。 2. 字符转换函数3. strlen的使⽤和模拟实现计算字符串长度遇到\0才结束。案例3 指针-指针的⽅式在数组里面等于指针与指针之间的元素个数。 4. strcpy 的使⽤和模拟实现返回首元素地址比如说 常量字符串是不可以修改的所以字符串函数基本上是对于字符串数组来说的。输出结果 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6552e8f802c2478eb45416153c3f0999.png) 这里把\0也给输出过去了遇到\0结束打印。strcpy的模拟实现: 4. 1 strncpy 函数的使⽤限制字符串长度复制 5. strcat的使⽤和模拟实现作用链接两个字符串返回首元素地址5.1 模拟实现strcat函数 5.2 strncat函数的使⽤限制字符串长度链接符串的⻓度⼩于num的时候只会将字符串中到\0 的内容追加到字符串末尾怎么理解来看代码 6. strcmp的使⽤和模拟实现作用比较两字符串的大小 大小的比较方式从左到右比较每个字符的ASCLL的值只要前面字符大则字符串大。6.1strcmp函数的模拟实现 7.strncmp函数的使⽤限制字符串长度比较 8. strstr 的使⽤和模拟实现功能从字符串1中找出字符串2返回的是地址8.1strstr的模拟实现 9. strtok 函数的使⽤第1次找strtok在后面找不到sep也就是找不到存放在sep的特殊字符就会返回NULL如果找到就返回切割字符串的首字符地址并把字符1和sep存放特殊字符一样的换成\0 第2次NULL解析:如果输入很乱不知道第2次找的首字符的地址在哪里但函数记住了第2次只要传NULL函数就可以找到第2次开始的位置。所以第2次传参只要传NULL和sep查找的特殊字符就可以了。 前言 目的学习主要常见字符串和字符串函数及其部分函数的模拟过程。 1. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的也就是⼀个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h。 这些函数的使⽤⽅法⾮常类似我们就讲解⼀个函数的事情其他的⾮常类似 int islower ( int c );islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟如果是⼩写字⺟就返回⾮0的整数如果不是⼩写字⺟则返回0。 案例1 写⼀个代码将字符串中的⼩写字⺟转⼤写其他字符不变。 #include stdio.h #include ctype.h int main () {int i 0;char str[] Test String.\n;char c;while (str[i]){c str[i];if (islower(c)) {c - 32;}putchar(c);i;}return 0; }输出结果 把字符数组的所有内容都改成大写。 2. 字符转换函数 C语⾔提供了2个字符转换函数 int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写 int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写上⾯的代码我们将⼩写转⼤写是-32完成的效果有了转换函数就可以直接使⽤ tolower 函 数。 案例2 #include stdio.h #include ctype.h int main () {int i 0;char str[] Test String.\n;char c;while (str[i]){c str[i];if (islower(c)) c toupper(c);putchar(c);i;}return 0; }这里和案例1不同案例1是- 32是减去ASCLL的值得到大写字母。案例2是函数内部运算的。 3. strlen的使⽤和模拟实现 函数内容 计算字符串长度遇到\0才结束。 size_t strlen ( const char * str );1 .字符串以 ‘\0’ 作为结束标志strlen函数返回的是在字符串中 ‘\0’ 前⾯出现的字符个数不包含 ‘\0’ )。 2. 参数指向的字符串必须要以 ‘\0’ 结束。 3. 注意函数的返回值为size_t是⽆符号的 易错 。 4. strlen的使⽤需要包含头⽂件string.h strlen的模拟实现 案例1 //计数器⽅式 int my_strlen(const char * str) {int count 0;assert(str);//断言一下执行函数之前不为NULL指针。while(*str){//str \0,时停止。count;str;}return count; }案例2 递归的方式实现计数同时不创建临时变量。 //不能创建临时变量计数器 int my_strlen(const char * str) {assert(str);if(*str \0){return 0;}else return 1my_strlen(str1); }分析 案例3 指针-指针的⽅式在数组里面等于指针与指针之间的元素个数。 int my_strlen(char *s) {assert(str);char *p s;while(*p ! ‘\0’ )p;return p-s; }4. strcpy 的使⽤和模拟实现 函数库内容 char* strcpy(char * destination, const char * source );返回首元素地址 源字符串必须以 ‘\0’ 结束。会将源字符串中的 ‘\0’ 拷⻉到⽬标空间。⽬标空间必须⾜够⼤以确保能存放源字符串。⽬标空间必须可修改。 比如说 常量字符串是不可以修改的所以字符串函数基本上是对于字符串数组来说的。 案例1 把字符串”holle“复制到str1 4开始的位置 #includestdio.h #includestring.h int main() {char str1[] { 123456789 };//也可以char str2[] hello;//strcpy(str 4, str2);//把字符串”holle“复制到str1 4开始的位置。strcpy(str1 4, hello);puts(str1);return 0; }输出结果 这里把\0也给输出过去了遇到\0结束打印。 strcpy的模拟实现: 实现代码 char *my_strcpy(char *dest, const char*src){ char *ret dest;//记录开始位置assert(dest ! NULL);assert(src ! NULL); while((*dest *src)){//当src \0时赋值且停下。;}return ret; }4. 1 strncpy 函数的使⽤ 限制字符串长度复制 拷⻉num个字符从源字符串到⽬标空间。如果源字符串的⻓度⼩于num则拷⻉完源字符串之后在⽬标的后边追加0直到num个。 char * strncpy ( char * destination, const char * source, size_t num );上面案例strcpy案例1代码若要将字符串2的前n个字符复制到str1中就可以使用strncpy。代码2 #includestdio.h #includestring.h int main() {char str1[] { 123456789 };char str2[] hello;//strcpy(str 4, str2);strncpy(str1 4, str2, 4);puts(str1);return 0; }输出结果 这里刚刚好没有把\0复制到str1中当然还有一种案例,就是超出str2的长度会怎么样呢 案例3 #includestdio.h #includestring.h int main() {char str1[] { 123456789 };char str2[] hello;//strcpy(str 4, str2);strncpy(str1, str2, 7);puts(str1);return 0; }调试一下 超出的都变成了\0. 5. strcat的使⽤和模拟实现 作用链接两个字符串返回首元素地址 注意 源字符串必须以 ‘\0’ 结束。 2.⽬标字符串中也得有 \0 否则没办法知道追加从哪⾥开始。 3.⽬标空间必须有⾜够的⼤能容纳下源字符串的内容。 4.⽬标空间必须可修改。 5.链接时字符串1的\0被字符串2覆盖。 链接字符串2可以是字符串常量。 代码1 #includestdio.h #includestring.h int main() {char str1[20] { hello, };strcat(str1, how are you!);puts(str1);return 0; }输出结果 5.1 模拟实现strcat函数 char *my_strcat(char *dest, const char*src){char *ret dest;//记录首元素地址assert(dest ! NULL);assert(src ! NULL);while(*dest){//dest \0,就。dest;}while((*dest *src)){//把\0覆盖把字符串2链接到字符串1;}return ret; }5.2 strncat函数的使⽤ 限制字符串长度链接 函数内容 char * strncat ( char * destination, const char * source, size_t num );将source指向字符串的前num个字符追加到destination指向的字符串末尾再追加⼀个 \0 字 符 如果source 指向的字符串的⻓度⼩于num的时候只会将字符串中到 \0 的内容追加到destination指向的字符串末尾 符串的⻓度⼩于num的时候只会将字符串中到\0 的内容追加到字符串末尾怎么理解来看代码 案例1 把字符串2前面4个字符连接到字符串1 #includestdio.h #includestring.h int main() {char arr1[20] helle\0xxxxxx;char arr2[] world;strncat(arr1, arr2, 4);return 0; }调试一下 这里提前加了\0提前结束了字符串1。 6. strcmp的使⽤和模拟实现 作用比较两字符串的大小 大小的比较方式从左到右比较每个字符的ASCLL的值只要前面字符大则字符串大。 • 标准规定 第⼀个字符串⼤于第⼆个字符串则返回⼤于0的数字 第⼀个字符串等于第⼆个字符串则返回0 第⼀个字符串⼩于第⼆个字符串则返回⼩于0的数字 案例1 #includestdio.h #includestring.h int main() {char str1[] zheng;char str2[] zhao;int ret strcmp(str1, str2);if (ret 0) {puts(大于);}else if (ret 0){puts(等于);}else {puts(小于);}return 0; }输出结果分析 6.1strcmp函数的模拟实现 int my_strcmp (const char * str1, const char * str2) {int ret 0 ;assert(src ! NULL);assert(dest ! NULL);while(*str1 *str2){//比较sacll的值if(*str1 \0)//如果*str1 和 str2等于\0,字符串相等。return 0;str1;str2;}return *str1-*str2;//如果有字符不相等的比较ASCLL的值返回。 }这就是strcmp函数的模拟实现了。 7.strncmp函数的使⽤ 限制字符串长度比较 函数内容 int strncmp ( const char * str1, const char * str2, size_t num );**⽐较str1和str2的前num个字符如果相等就继续往后⽐较最多⽐较num个字⺟如果提前发现不⼀样就提前结束**⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等就是相等返回0。 案例1 int main() {char str1[] zheng;char str2[] zhao;int ret strncmp(str1, str2, 3);if (ret 0) {puts(大于);}else if (ret 0){puts(等于);}else {puts(小于);}return 0; }那如果把限制长度变成2呢 输出结果 等于因为前面两个字符相同。 8. strstr 的使⽤和模拟实现 功能从字符串1中找出字符串2 函数内容 char * strstr ( const char * str1, const char * str2);返回的是地址 函数返回字符串str2在字符串str1中第⼀次出现的位置。 字符串的⽐较匹配不包含 \0 字符以 \0 作为结束标志。 案例1 #include stdio.h #include string.h int main () {char str[] This is a simple string;char * pch;pch strstr (str,simple);//strncpy (pch,sample,6);printf(%s\n, pch);return 0; }输出结果 说明什么说明strstr函数记录相同字符串在str的地址也可以去掉代码的注释内容链接完整。 去掉注释后的输出结果 8.1strstr的模拟实现 char * my_strstr (const char * str1, const char * str2) {char *cp (char *) str1;//记录首元素地址char *s1, *s2;if ( !*str2 )//空指针取反为真return((char *)str1);while (*cp{s1 cp;s2 (char *) str2;while ( *s1 *s2 !(*s1-*s2) )//s1,s2不等于\0,且*s1和*s2相同s1, s2;if (!*s2)//s2等于\0时return(cp);//返回找到字符串1找到相同字符串2的起始地址。cp;//如果找不到cp}return(NULL); } int main() {char arr1[] abbbcdf;char arr2[] bbc;char* ret my_strstr(arr1, arr2);if (ret ! NULL) {printf(%s\n, ret);}else {printf(找不到\n);}return 0; }分析如图 重点可以用char*pr接收返回地址如果找不到会返回空指针所以最好判断之后在打印。 9. strtok 函数的使⽤ char * strtok ( char * str, const char * sep);• sep参数指向⼀个字符串定义了⽤作分隔符的字符集合 • 第⼀个参数指定⼀个字符串它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标记。 • strtok函数找到str中的下⼀个标记并将其⽤ \0 结尾返回⼀个指向这个标记的指针。注 strtok函数会改变被操作的字符串所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容并且可修改。 • strtok函数的第⼀个参数不为NULL 函数将找到str中第⼀个标记strtok函数将保存它在字符串中的位置。 • strtok函数的第⼀个参数为 NULL 函数将在同⼀个字符串中被保存的位置开始查找下⼀个标记。 • 如果字符串中不存在更多的标记则返回 NULL 指针。 代码展示 #include stdio.h #include string.h int main() {char arr[] 192.168.6.111;char* sep .;char* str NULL;for (str strtok(arr, sep); str ! NULL; str strtok(NULL, sep)){printf(%s\n, str);}return 0; }分析 第1次找strtok在后面找不到sep也就是找不到存放在sep的特殊字符就会返回NULL如果找到就返回切割字符串的首字符地址并把字符1和sep存放特殊字符一样的换成\0 第2次NULL解析:如果输入很乱不知道第2次找的首字符的地址在哪里但函数记住了第2次只要传NULL函数就可以找到第2次开始的位置。所以第2次传参只要传NULL和sep查找的特殊字符就可以了。 也就是说strtok这个函数有点特别第一次找到\0时他自己就会记录下一次开始的位置不需要自己传函数自己知道所以只要传入NULL就可以2次调用函数函数自己记录着开始位置在查找sep查找的特殊字符进行切割。 好了今天的分享就到这里了都看到这里了点一个赞吧谢谢。
http://www.huolong8.cn/news/188160/

相关文章:

  • 网站建设方案及预算巩义网站推广
  • 网站怎么做脚注erp系统长什么样
  • 企业能建站吗微信上怎么做网站链接
  • 网站建站的流程下列关于网站开发中网站上传
  • 铜仁住房和城乡建设局网站大连最新发布
  • ASP网站建设实训报告总结wordpress谷歌收录
  • 怎么做淘宝客优惠券网站wordpress案例制作
  • 网站建设网站制作网页wordpress 改成 中文
  • 长沙手机网站建设wordpress导入doc
  • 网站的设计步骤网络运营中心
  • 制作一个.net网站需要汽车建设网站开发流程
  • 成都网站营销c 网站建设大作业代码
  • 泰州住房城乡建设网站服装设计自学软件
  • 糕点网站策划书国内外高校门户网站建设的成功经验与特色分析
  • 江苏城乡建设网站太原网站建设价格低
  • 群晖 nas做网站 推荐中英企业网站
  • fw怎么做网站国外做评论的网站
  • 网站及新媒体平台建设报告网站开发语言net
  • 广州网站建设解决方案名师工作室网站建设 意义
  • 非遗文化网站建设seo 网站title
  • 培训机构网站建设要求dedecms 金融类网站模板
  • 制作网站心得用PYTHON3 做网站
  • 个人网站服务器租用成都网站空间
  • 吴江城乡建设局网站主题资源网站建设模块五作业
  • 做网站的公司现在还 赚钱吗6厦门企业app开发
  • 中国建设部网站失信名单网站建设 豫icp备
  • 网页开发网站域名邮箱 400电话
  • 万由nas做网站swf网站cms
  • 教育培训网站排名成都专做婚介网站的公司
  • 德州建设网站公司wordpress 画图插件