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

网站制作的基本概念芜湖公司网站建设

网站制作的基本概念,芜湖公司网站建设,wordpress商品展示模板下载,哈尔滨建筑工程招聘信息小编在写这篇博客时#xff0c;经过了九一八#xff0c;回想起了祖国曾经的伤疤#xff0c;勿忘国耻#xff0c;振兴中华#xff01;加油#xff0c;逐梦少年#xff01; 前言 #x1f493;作者简介#xff1a; 加油#xff0c;旭杏#xff0c;目前大二#xff0c;…       小编在写这篇博客时经过了九一八回想起了祖国曾经的伤疤勿忘国耻振兴中华加油逐梦少年 前言 作者简介 加油旭杏目前大二正在学习C数据结构等 作者主页加油旭杏的主页 ⏩本文收录在再识C进阶的专栏 代码仓库旭日东升 1 欢迎大家点赞 收藏 ⭐ 加关注哦 学习目标 在上一篇博客中我们已经充分的学习了指针的相关知识那么这篇博客我们来重点关注一下字符串函数主要学习求字符串长度的函数长度受限制的字符串函数长度不收限制的字符串函数以及字符串查找函数最后再来介绍一下错误信息报告。 之后我们会将一些函数进行模拟实现再拓展一下其他内容C语言中对字符和字符串的处理很是频繁但是C语言本身是没有字符串类型的字符串类型通常放在常量字符串或者字符数组中字符串常量适用于那些对它不做修改的字符串函数。所以这篇博客还是比较重要的。 学习内容 通过上面的学习目标我们可以列出要学习的内容 求字符串长度的函数以及手撕代码模拟实现长度受限制的字符串函数同样手撕代码模拟实现长度不受限制的字符串函数观看其源代码了解原理字符串查找函数同样手撕代码模拟实现介绍一下错误信息报告 小编了解有些人是不会看学习目标那么我就再说一遍说起字符串C语言中对字符和字符串的处理很是频繁但是C语言本身是没有字符串类型的字符串通常放在常量字符串中或者字符数组中。常量字符串适用于那些对他不做修改的字符串函数。  一、求字符串长度的函数——strlen 1.1 函数介绍 在【初阶C语言3】特别详细地介绍函数中小编已经介绍了如何查找库函数的参数和具体用法在这里小编就不多说了。回归主题我们来看strlen函数。 简单来说strlen函数是求字符串长度的库函数传递的参数是要求字符串长度的首元素地址即可。但是要注意的是strlen函数本质上统计的是字符串中 \0 之前的字符的个数。看下面的代码进行区分 #include stdio.h #include string.h //别忘了引头文件 int main() {char arr1[] sdgeghkoe;char arr2[] sdgeg\0hkoe;printf(strlen(arr1) %d\n, strlen(arr1));printf(strlen(arr2) %d\n, strlen(arr2));return 0; } 在来看strlen函数返回值的特点仔细看在库函数中strlen函数的返回值的类型是无符号整形size_t。怎么理解这个无符号整形呢我们来看下面的一道题 int main() {const char* str1 abcdfre; //const修饰使指针指向的字符串不能被修改const char* str2 fsfe;if (strlen(str2) - strlen(str1) 0){printf(str2 str1);}else{printf(str1 str2);}return 0; }        这道题按照常理来讲str2指向的字符串长度比str1指向的字符串长度小所以这个运算的结果应该是str1 str2但为什么结果是str2 str1,。        因为strlen函数的返回值是无符号整形两个无符号整形进行相加减的时候是不会出现负数的情况所以不论这道题的结果是什么永远都是str2 str1。 1.2 模拟实现一下strlen函数 模拟实现strlen函数有三种方法一个是计数器、一个是递归的方法、一个是指针减指针的方法。下面小编来一一为大家进行讲解 1.2.1 计数器方法实现strlen函数 1.3 总结一下strlen函数的要点 二、长度不受限制的字符串函数 2.1 strcpy函数 2.1.1 函数介绍 strcpy——string copying表示的是字符串拷贝的工作如果我们不清楚我们可以在网站上进行搜索strcpy函数。 上面的意思是 将源头的字符串传给目的地的字符串中包括 \0。在使用strcpy函数进行拷贝字符串的时候源字符串必须要有 \0其是strcpy函数拷贝结束的标志否则程序将会打印出一些不必要的内容。请看下图进行解释 基本用法 //第一种写法 int main() {char arr1[20] xxxxxxxxx;char arr2[] { s,a,d,\0};printf(%s\n, strcpy(arr1, arr2));return 0; } //第二种写法 int main() {char arr1[20] xxxxxxxxx;char arr2[] sad;printf(%s\n, strcpy(arr1, arr2));return 0; } int main() {char arr1[20] xxxxxxxxx;char arr2[] { s,a,d };printf(%s\n, strcpy(arr1, arr2));return 0; } 2.1.2 strcpy函数使用时出现的一些问题 问题一目的地的字符数组的大小比源头的字符数组的大小要小 代码 int main() {char arr1[] { 0 };char arr2[] hello;printf(%s\n, strcpy(arr1, arr2));return 0; } 结果        虽然会弹出警告但是strcpy函数还是会完成其使命将源头的字符串拷贝到目的地的字符串中因为strcpy函数是不受长度限制的函数。 问题二将源头的字符串拷贝到常量字符串中 代码 int main() {char* p (char* )feifhw;char arr2[] hello;printf(%s\n, strcpy(p, arr2));return 0; } 结果 2.1.3 总结一下strcpy函数的要点 源字符串必须以 \0 结束在拷贝的过程中会将源字符串中的 \0 拷贝到目标空间中目标空间必须足够大以确保能存放源字符串目标空间必须可变不能是常量字符串 2.1.4 模拟实现一下strcpy函数 char* my_strcpy(char* base, const char* serc) //源头的内容不用改用const修饰 {assert(base serc); //检查指针是否指空char* ans base;while (*base *serc){;}return ans; } 2.2 strcat函数 2.2.1 函数介绍 这个函数是用于字符追加的如果我们不清楚我们依然可以进行在网站上查询strcat函数。下面小编我将会为大家用代码示范一下如何使用strcat函数 基本用法 int main() {char arr1[20] asd;char arr2[] hjk;printf(%s\n, strcat(arr1, arr2));return 0; } 在上面的用法中我们好像已经浅浅地了解了strcat函数的用法就是将源头的字符串追加到目的地的字符串中。那么这时我们要来思考一下问题1到底是遇见 \0 进行追加还是遇见字符串末尾进行追加呢2字符串在拷贝的过程中是否将源头的 \0 也拷贝过去呢3目的地字符串数组是否要足够大下面我们来解决一下这些问题 2.2.2 解决上述strcat函数的相关问题 问题一到底是遇见什么进行追加遇见/0进行追加 问题二在拷贝的过程中将源头的\0拷贝过去 int main() {char arr1[20] asdxxx\0xxxxx;char arr2[] hjk;printf(%s\n, strcat(arr1, arr2));return 0; } 问题三目的地数组要足够大与strcpy类似 int main() {char arr1[] asdxxx;char arr2[] hjk;printf(%s\n, strcat(arr1, arr2));return 0; } 2.2.3 总结一下strcat函数的要点 源字符串必须要以 \0 结束保证能够找到目标空间的末尾目标变量必须要足够大能容纳下源字符串的内容目标函数必须可以修改 2.2.4 模拟实现一下strcat函数 char* my_strcat(char* str1, const char* str2) {assert(str1 str2);char* ret str1;//找到目标空间的末尾while (*str1 ! 0){str1;}//数据追加while (*str1 *str2){;}return ret; } 2.2.5 思考一下字符串能和自己追加呢 显然是不能的因为如果自己给自己进行追加会导致字符串的内容发生一些变化将字符0给堵盖掉就没有结束标志了看下图进行理解 2.3 strcmp函数 2.3.1 函数介绍 strcmp——string compare表示的是字符串比较的工作注意这个字符串函数比较的不是字符串的大小而是对应位置上字符的大小ASCII值。我们也可以在网站上搜索strcmp函数。  标准规定 第一个字符串大于第二个字符串则返回大于0的数字第一个字符串等于第二个字符串则返回0第一个字符串小于第二个字符串则返回小于0的数字 要注意的是这个函数的返回值为int两个参数都是const char*类型的因为我只是想要比较两个字符串的大小不需要进行修改。  基本用法 int main() {char arr1[] dsgfer;char arr2[] dsgfty;printf(%d\n, strcmp(arr1, arr2));return 0; } 2.3.2 模拟实现一下strcmp函数 //第一种写法返回值是1和-1 int my_strcmp(const char* str1, const char* str2) {assert(str1 str2);while (*str1 *str2){if (*str2 0)return 0;str1;str2;}if (*str1 *str2)return -1;else if(*str1 *str2)return 1; }//第二种写法返回值不一定是1和-1 int my_strcmp(const char* str1, const char* str2) {assert(str1 str2);while (*str1 *str2 *str1 *str2){str1;str2;}return *str1 - *str2; }2.4 长度不受限制的字符串函数的特点 这些字符串函数都会将直接完成该完成的任务不会管目的地字符串数组能否放的下它都会将放入其中这些函数是简单粗暴的而我们学的下几个函数不会像这几个函数一样。 三、长度受限制的字符串函数 我们来看这几个函数strncpystrncatstrncmp它们都多了一个n也就是number。这些函数都会确定几个字符进行该函数的工作所以说它们是长度受限制的字符串函数。 3.1 strncpy函数 3.1.1 函数介绍 在和strcpy函数进行比较时会发现参数部分多了一个num要和strcpy进行区分一下所以其作用是拷贝num个字符从源字符串到目标空间中。我们依然可以在网站上搜索strncpy函数。 3.1.2 strncpy函数要注意的要点 要点一是否在后面拷贝 \0 这个函数并没有在后拷贝 \0 可以看下面的代码 int main() {char arr1[] xxxxxxxxxxx;char arr2[] asd;printf(%s\n, strncpy(arr1, arr2, 3));return 0; } 要点二如果源字符串的长度小于num怎么办  如果源字符串的长度小于num则在拷贝完字符串之后在目标的后面追加0直到num个。 int main() {char arr1[] xxxxxxxxxxx;char arr2[] asd;printf(%s\n, strncpy(arr1, arr2, 6));return 0; } 3.2 strncat函数 3.2.1 函数介绍 这个函数和strcat函数的功能是一样的我们同样可以在网站上搜索strncat函数。 基本用法   int main() {char arr1[20] hoojp;char arr2[20] wqoieh;strncat(arr1, arr2, 4);printf(%s\n, arr1);return 0; } 3.2.2 strncat函数要注意的要点 我们要记住strncat函数将几个字符追加到另一个字符串中会在后面添加一个 \0。看下面的代码 int main() {char arr1[20] hoojp\0xxxxx;char arr2[20] wqoieh;strncat(arr1, arr2, 4);printf(%s\n, arr1);return 0; } 3.3 strncmp函数 该函数的功能是比较到出现另一个字符不一样或者一个字符串结束或者num个字符全部比较完。看下图的精确含义 基本用法 int main() {char arr1[20] hjoihsoad;char arr2[20] hjoihjdkp;int ret strncmp(arr1, arr2, 5);printf(%d\n, ret);return 0; } 四、字符串查找函数 这些函数还是比较怪的不同于前面讲述的三类函数是一下关于字符串内容的操作我们来一起看看吧 4.1 strstr函数 4.1.1 函数介绍 strstr——string string是在字符串中查找子字符串中的操作根据函数原型可以发现是在str1中找到str2第一次出现的位置如果str1中没有str2就返回NULL。 基本用法 int main() {char str[] This is a simple string;char* pch;pch strstr(str, simple);printf(%s, pch);return 0; }   4.1.2 模拟实现一下strstr函数 const char* my_strstr(const char* str1, const char* str2) {assert(str1 str2);const char* s1;const char* s2;const char* cp;cp str1;while (*cp){s1 cp;s2 str2;while (*s1 *s2){if (*s2 0)return cp;s1;s2;}cp;}return NULL; } 4.1.3 拓展一下kmp算法  4.2 strtok函数 strtok函数是用来切割字符串的如果在一个字符串中有分隔符的话我们可以使用这个函数去按照分隔符将一个字符串分割成好几份。下面来看这个函数的参数 sep参数是一个字符串定义了用作分隔符的字符的集合第一个参数制定一个字符串它包含了0个或者多个由字符串中的一个或者多个分隔符分割的标记strtok函数找到str中的下一个标记并将其用 \0 进行结尾返回一个指向这个标记的指针注strtok函数会改变被操作的字符串所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可以修改strtok函数的一个参数不为NULL函数将找到str中的第一个标记strtok函数将保存它在字符串中的位置strtok函数的一个参数为NULL函数将在同一个字符串中被保存的位置开始查找下一个标记如果字符串中不存在更多标记则返回NULL指针。  基本用法 int main() {char arr[] shdakioiahd.isauh;char buf[200] { 0 };strcpy(buf, arr);const char* p .;char* s NULL;for (s strtok(arr, p); s ! NULL; s strtok(NULL, p)){printf(%s\n, s);}return 0; } 五、错误信息报告函数strerror strerror函数是将错误码翻译成错误信息返回错误信息的字符串的起始位置。错误码有是什么C语言在使用库函数时如果发生错误会将错误码放在errno中errno是全局变量可直接使用。 基本用法 int main() {int i 0;for (int i 0; i 10; i){printf(%s\n, strerror(i));}return 0; } 学习产出 求字符串长度的函数以及手撕代码模拟实现长度受限制的字符串函数同样手撕代码模拟实现长度不受限制的字符串函数观看其源代码了解原理字符串查找函数同样手撕代码模拟实现介绍一下错误信息报告
http://www.zqtcl.cn/news/439537/

相关文章:

  • 中力建设网站怎么做自己的门户网站
  • 做的网站必须放做音乐网站的目地
  • 网站备案下来以后怎么做网页万网创始人张向东
  • 怎么做网站官方电话品牌营销策划十大要点
  • 上海自适应网站深圳网络推广外包
  • 网站的建设模式是指什么时候开始外网视频网站做泥声控
  • 免费在线观看电影电视剧网站网站建设公司哪家好 在线磐石网络
  • 域名是建网站之前申请吗怎么查看网站开发语言
  • 网站建设业务的延伸性查企业信息查询平台官网免费
  • 网站如何制作的渭南网站建设推广
  • 网站的ico怎么做简单房地产网站
  • 做室内设计通常上的网站关键词挖掘查询工具爱站网
  • 大理住房和城乡建设部网站为食堂写个网站建设
  • 做网站要icp备案吗软件定制开发 报价
  • 外国网站上做雅思考试dw做网站的导航栏
  • 公司网站建设的作用网站建设网上商城心得体会
  • 珠海网站建设的公司网站生成app
  • 营销网站建设的价格私人网站建设成本
  • 企业网站制作模板免费下载淘宝指数查询官网手机版
  • 做服装外单的网站购物网站首页图片
  • 网站建设到运营赚钱上海网络哪家比较好
  • 做网站要求高吗超炫网站
  • 贵卅省住房和城乡建设厅网站怎么快速仿wordpress站
  • 苏州网站建设排名clef wordpress
  • 罗定建设局网站汽车装饰网站源码
  • 网站用什么切版商城网站怎么建
  • 设计网站公司多少钱wordpress获取所有标签
  • 怎么看一个网站是哪个公司做的电子商务网站设计与规划
  • 邯郸哪里做网站优化网站建设如何排版
  • 济南网站建设设计制作公司找人做网站价格