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

怎样做网站性能优化b站推广网站2023

怎样做网站性能优化,b站推广网站2023,网站分辨率兼容怎么做,西乡做网站多少钱本章概述 字符分类函数字符转换函数strlen的使用和模拟实现strcpy的使用和模拟实现strcat的使用和模拟实现strcmp的使用和模拟实现彩蛋时刻!!! 字符分类函数 字符: 这个概念,我们在以前的文章中讲过了。我们键盘输入的…

本章概述

  • 字符分类函数
  • 字符转换函数
  • strlen的使用和模拟实现
  • strcpy的使用和模拟实现
  • strcat的使用和模拟实现
  • strcmp的使用和模拟实现
  • 彩蛋时刻!!!

字符分类函数

  • 字符: 这个概念,我们在以前的文章中讲过了。我们键盘输入的信息都是字符。字符大体可以分为两类——单个字符字符串。而单个字符又可以进行分类——字母字符数字字符特殊字符不可见字符。进行思维图展示:在这里插入图片描述
    在日常生活中,我们写的字符也就是随便写,比如,123,abc……。但在C语言中为了识别出字符和字符串,我们就要用两个操作符——' '" "' '用来识别单个字符的," "用来识别字符串的。
    我们对于所写的字符,我们人都能识别出来。A我们能识别它是大写,a我们能识别它是小写,1我们能识别它是数字。但是,计算机是无法识别出来的,所以,为了能够让计算机识别,我们就创建了字符分类函数。我们进行展示:在这里插入图片描述
    它们的头文件是:<ctype.h>,当条件为真时,就会返回大于0的数值,反之返回小于0的数值。这些字符分类函数的用法都是相同,所以我们举一个就行了(常用的),比如,islower判断是否小写的函数。我们先来看它的类型和参数:
//	int islower (int c)

进行代码展示:

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <ctype.h>
int main()
{int c = islower('a');int b = islower('A');if (c > 0)printf("%c是小写\n", 'a');elseprintf("%c是大写\n", 'a');if (b > 0)printf("%c是小写\n", 'A');elseprintf("%c是大写\n", 'A');return 0;
}

结果运行图:在这里插入图片描述
对于其它字符分类函数的使用,大家可以点击连接进行学习使用:https://cplusplus.com/reference/clibrary/

字符转换函数

C语言中就俩字符转换函数,它们的头文件是 <ctype.h>,如下:

//	大写转小写:int  tolower (int c)
//	小写转大写:int  toupper  (int c)

进行代码展示:

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{int c = toupper('a');	//转大写printf("%c\n", c);int b = tolower('A');	//转小写printf("%c\n", b);return 0;
}

结果运行图:在这里插入图片描述
我们来写个程序,运用我们所学的知识:

//	我们写一句英文,然后,把我们所写的英文全部转换为大写,比如:
//	I am a student.-------> I AM A STUDENT.
//	我们来写两个方法进行实现。

程序【1】

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{char arr[] = "I am a student.";int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;printf("转换前:%s\n", arr);for (i = 0; i < sz; i++){if (islower(arr[i]))arr[i] = arr[i] - 32;	//大写字母的AS||值比小写字母的AS||值少32}printf("转换后:%s\n",arr);return 0;
}

结果运行图:在这里插入图片描述
程序【2】。

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <ctype.h>
int main()
{char arr[] = "I am a student.";int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;printf("转换前:%s\n", arr);for (i = 0; i < sz; i++){if(islower(arr[i]))arr[i]=toupper(arr[i]);	//使用 toupper进行转换}printf("转换后:%s\n",arr);return 0;
}

结果运行图:在这里插入图片描述
大家也可以进行举一反三,比如,大写转小写代码。

strlen的使用和模拟实现

  • strlen的使用:后面,我们要开始讲字符串相关的函数了,它们的头文件<string.h>。前面,咱们已经讲过了strlen的使用和模拟实现,今天在复习一下。我们知道,每个字符串后面都会自动补\0,strlen统计的是\0之前的字符串的长度。进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
int main()
{char arr[] = "abcdef";printf("%zd", strlen(arr));return 0;
}

结果运行图:在这里插入图片描述
对于strlen的返回值打印最好要用%zd。因为strlen返回值类型为size_t(无符号整形),关于为什么是size_t的类型,咱们在以前的文章中讲过了。
我们还可以指定它的统计起始位置,进行代码展示:下面展示一些 内联代码片

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
int main()
{char arr[] = "abcdef";printf("%zd", strlen(arr+1));	//从b开始进行统计,所以统计数为:5.return 0;
}

结果运行图展示:在这里插入图片描述

  • strlen的模拟:
//	咱们写三种方法进行实现。
// 	思路:统计\0之前的字符数。

方法【1】----计数器的方式

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
size_t my_strlen(char arr[])
{int count = 0;int i = 0;while (arr[i]){count++;i++;}return count;
}
int main()
{char arr[] = "abcdef";printf("%zd\n", my_strlen(arr));return 0;
}

结果运行图:在这里插入图片描述
方法【2】----指针-指针

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
size_t my_strlen(char arr[])
{char*s1=arr;while (*arr){arr++;}return arr-s1;
}
int main()
{char arr[] = "abcdef";printf("%zd\n", my_strlen(arr));return 0;
}

结果运行图:在这里插入图片描述
方法【3】----递归函数
进行如图所示的逻辑:

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
size_t my_strlen(char arr[])
{if (*arr){arr++;return 1 + my_strlen(arr);}elsereturn 0;}
int main()
{char arr[] = "abcdef";printf("%zd\n", my_strlen(arr));return 0;
}

结果运行图:在这里插入图片描述
在这三种方法都很好,都是使用了我们所学过的知识,大家要掌握。

strcpy的使用和模拟实现

  • strcpy的使用: 具有拷贝字符串的功能。比如,A字符串拷向B字符串,B字符串拷向A字符串,自己向自己拷贝。 我们来看它的结构组成:
//		char * strncpy ( char * destination, const char * source );|								|					||								|					||								|					|
返回的是des的地址(未更改前的)	     目的地的地址	       拷贝源的地址//		因为我们不想拷贝来源的时候,发生更改,所以用const修饰。
  • 它的使用有几个要注意的点
    • 1.拷贝的来源必须以' \0'结尾
    • 2.dest的空间要足够大,要容的下要拷贝的内容。
    • 3.des的空间是要可修改的,要不然就无法拷贝。
    • 4 .拷贝的时候,也会把source的' \0'拷贝过去
    • 5.拷贝的起始位置是可以指定的(des和source都可以指定起始位置,指定的方式和strlen一样)
  • 进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
int main()
{char arr[] = "abcedf";char arr1[30]={0};printf("拷贝前arr1:%s\n",arr1);printf("拷贝后arr1:%s\n", strcpy(arr1, arr));return 0;
}

结果运行图:

  • strcpy的模拟实现:
//		遇到source的' \0'就会拷贝停止,但也要把' \0'拷贝过去

进行代码展示:

#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
#include <assert.h>
char* my_strcpy(char* des, const char* str)
{char* p = des;			//因为经过后面的程序后,des的值早变了,所以要先给cpy一份assert(des && str);		//判断一下,des和str是否为空指针while (*des++=*str++){;}return p;
}
int main()
{char arr[] = "abcedf";char arr1[30] = {0};printf("拷贝前arr1:%s\n",arr1);printf("拷贝后arr1:%s\n", my_strcpy(arr1, arr));return 0;
}

结果运行图:在这里插入图片描述

strcat的使用和模拟实现

  • strcat的使用它具有在字符串的后面补上别的字符串的功能。比如:
// char arr[30]="abd" ;
// char arr1[4]="acd" ;
//  arr1向arr的末尾补齐------->"abdacd"
  • 它的结构所示:
//  char * strcat(char *dest, const char*src)
//		返回值和每个参数的意思和strcpy是一样的
  • 它的使用要注意的点
    • 1.src会找到des的第一个出现的' \0',在此处把src的字符串补充到des中(此时的’ \0’会被覆盖)。
    • 2 .由于des的’ \0’被覆盖了,所以str在补充字符串后,会在末尾添加’\0’。占别人的东西,最后肯定要还的!
    • 3.des的空间要够大,要容得下补充后的字符空间。
    • 4 .补充的起始位置是可以指定的(des和str都可以指定起始位置,指定的方式和strlen一样)
  • 进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
#include <assert.h>
int main()
{char arr[30] ="abcdef";char arr1[] = "xxx";printf("%s\n", strcat(arr, arr1));return 0;
}

结果运行图:在这里插入图片描述

  • strcat的模拟实现思路我们要找到des的’\0’, 才能进行补充。进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
#include <assert.h>
char* my_strcat(char* des, const char* str)
{char* p = des;assert(des && str);while (*des)des++;while (*des++=*str++){;}return p;
}
int main()
{char arr[30] ="abcdef";char arr1[] = "xxx";printf("%s\n", my_strcat(arr, arr1));return 0;
}

结果运行图:在这里插入图片描述

strcmp的使用和模拟实现

  • strcmp的使用:是用来比较字符串的大小的。它比较的可不是两个字符串的长度大小比较的是每单个字符的大小(就是比较两个单个字符的AS||值的大小)。结构组成如下:
//		int strcmp (const char * str1, const char * str2)
  • 要注意的几点:
    • 1.比较的顺序就是所输入的数据,比如,输入顺序:str1 ,str2。 比较顺序:str1 ,str2。 输入顺序:str2 ,str1。 比较顺序:str2 ,str1。
    • 2 .str1 > str2就会返回大于0的数值。str1<str2就会返回小于0的值。str1=str2就会返回0
    • 3.因为我们要比较两个字符串的大小,所比较的内容不能被更改,所以参数要用const修饰。
    • 4 .比较的起始位置是可以指定的(str1和str2都可以指定起始位置,指定的方式和strlen一样)
  • 进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <string.h>
#include <assert.h>
int main()
{char arr[30] ="abcdef";char arr1[] = "abx";printf("%d\n", strcmp(arr, arr1));return 0;
}

结果运行图:在这里插入图片描述
大家可自行试一下,对于和等于的代码。

  • strcmp的模拟实现比较的AS||值的大小,进行代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
#include <assert.h>
#include <string.h>
int my_strcmp(const char* e1, const char* e2)
{while (*e1 == *e2){e1++;e2++;if (*e1 == '\0' || *e2 == '\0')break;}return *(int*)e1 - *(int*)e2;
}
int main()
{char arr[30] = "abcdef";char arr1[] = "abx";printf("%d\n", my_strcmp(arr, arr1));return 0;
}

结果运行图:在这里插入图片描述

彩蛋时刻!!!

https://www.bilibili.com/video/BV1Ze4y1F7CV/?spm_id_from=333.337.search-card.all.click
在这里插入图片描述每章一句总有人翘首以盼为你而来。感谢你能看到这里,点赞+关注+收藏+转发是对我最大的鼓励,咱们下期间!!!


文章转载自:
http://satiric.yzkf.cn
http://zacharias.yzkf.cn
http://melanoma.yzkf.cn
http://uncommercial.yzkf.cn
http://imperfectness.yzkf.cn
http://ommatophore.yzkf.cn
http://misdiagnose.yzkf.cn
http://matchless.yzkf.cn
http://mastigophoran.yzkf.cn
http://suctorian.yzkf.cn
http://tannier.yzkf.cn
http://wherein.yzkf.cn
http://foofaraw.yzkf.cn
http://defunct.yzkf.cn
http://fusel.yzkf.cn
http://carpetbagger.yzkf.cn
http://electrovalent.yzkf.cn
http://taranto.yzkf.cn
http://deducible.yzkf.cn
http://bumpy.yzkf.cn
http://gudgeon.yzkf.cn
http://mondo.yzkf.cn
http://wrecky.yzkf.cn
http://inborn.yzkf.cn
http://benthic.yzkf.cn
http://mediatize.yzkf.cn
http://vaginae.yzkf.cn
http://paralanguage.yzkf.cn
http://raja.yzkf.cn
http://polyandric.yzkf.cn
http://fanatically.yzkf.cn
http://soterial.yzkf.cn
http://sufferance.yzkf.cn
http://conglutinant.yzkf.cn
http://kyloe.yzkf.cn
http://hydrophyte.yzkf.cn
http://orangery.yzkf.cn
http://puzzlist.yzkf.cn
http://annunciate.yzkf.cn
http://tuberculoid.yzkf.cn
http://hesternal.yzkf.cn
http://referendary.yzkf.cn
http://rockiness.yzkf.cn
http://normanize.yzkf.cn
http://claustration.yzkf.cn
http://xenophobe.yzkf.cn
http://undissolved.yzkf.cn
http://cosignatory.yzkf.cn
http://drecky.yzkf.cn
http://overbearing.yzkf.cn
http://idiomorphically.yzkf.cn
http://icy.yzkf.cn
http://figurable.yzkf.cn
http://spirogyra.yzkf.cn
http://reptilarium.yzkf.cn
http://candlewood.yzkf.cn
http://cohune.yzkf.cn
http://escopeta.yzkf.cn
http://glittery.yzkf.cn
http://gorblimey.yzkf.cn
http://intelligible.yzkf.cn
http://netfs.yzkf.cn
http://spyglass.yzkf.cn
http://yeanling.yzkf.cn
http://chancy.yzkf.cn
http://lock.yzkf.cn
http://swig.yzkf.cn
http://ephyra.yzkf.cn
http://talky.yzkf.cn
http://efs.yzkf.cn
http://stratagem.yzkf.cn
http://barbarianize.yzkf.cn
http://muller.yzkf.cn
http://villainous.yzkf.cn
http://bulky.yzkf.cn
http://treasonous.yzkf.cn
http://astriction.yzkf.cn
http://jeopardously.yzkf.cn
http://besieged.yzkf.cn
http://hygrophyte.yzkf.cn
http://outgas.yzkf.cn
http://invulnerability.yzkf.cn
http://fontinal.yzkf.cn
http://gerard.yzkf.cn
http://phrasemonger.yzkf.cn
http://causerie.yzkf.cn
http://upset.yzkf.cn
http://finsen.yzkf.cn
http://emotionally.yzkf.cn
http://csb.yzkf.cn
http://fibrillar.yzkf.cn
http://bel.yzkf.cn
http://lyard.yzkf.cn
http://mccarthyist.yzkf.cn
http://lithocyst.yzkf.cn
http://overroast.yzkf.cn
http://aps.yzkf.cn
http://limpet.yzkf.cn
http://maidenlike.yzkf.cn
http://volumetry.yzkf.cn
http://www.15wanjia.com/news/96361.html

相关文章:

  • 网站设计标题简述网络营销的特点及功能
  • 商务网站建设实训总结好的推广方式
  • 合肥本地网站互联网舆情
  • 新建网站如何被搜索营销网站建设制作
  • 做医药行业找药的网站郑州seo外包
  • 做的好的手机网站产品网络推广深圳
  • 石景山做网站的公司百度问答平台
  • 电商网站经营性备案长春网站建设方案推广
  • 做双语网站用什么cms系统好seo优化师
  • 外贸建站主机空间哪家好seo网站管理招聘
  • 台州手机端建站模板seo短期培训班
  • 网站备案 公安局域名注册网站有哪些
  • 网站做跳转会有什么影响福州网站seo
  • 梵克雅宝官网中国官方网站项链百度首页排名优化平台
  • 媒体网站怎么申请seo具体优化流程
  • 商城网站建设策划网页优化seo广州
  • 做虾皮网站赚钱吗品牌软文营销案例
  • 百度seo刷排名软件网站seo是啥
  • 怎么做网站和注册域名网店seo排名优化
  • 义乌网站建设与维护指数函数运算法则
  • 合肥建设厅网站指数是什么
  • 强生公司营销网站为什么要这样做网页设计自学要多久
  • 佛山网站设计公司微信怎么推广引流客户
  • 厦门景观绿环建设行业协会网站黑帽seo培训
  • 刷QQ砖的网站咋做在线网站建设平台
  • 公共化网站建设方案个人代运营一般怎么收费
  • 携程网站建设计划管理与进度控制seo优化包括哪些内容
  • iis端口相同不同网站建设电商seo名词解释
  • 微信公众号开发需要什么技术最新seo新手教程
  • 目前网站开发语言引流推广犯法吗