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

贵阳有哪些做网站的公司响应式网站制作公司

贵阳有哪些做网站的公司,响应式网站制作公司,自适应 WordPress 主题,千锋前端培训班前言#xff1a; 字符串在C语言中比较特别#xff0c;没有单另的字符串类型#xff0c;想要初始化字符串必须用字符变量的数组初始化#xff0c;但是在C语言标准库函数中提供了大量能对字符串进行修改的函数#xff0c;比如说可以实现字符串的的拷贝#xff0c;字符串的追…前言 字符串在C语言中比较特别没有单另的字符串类型想要初始化字符串必须用字符变量的数组初始化但是在C语言标准库函数中提供了大量能对字符串进行修改的函数比如说可以实现字符串的的拷贝字符串的追加字符串的替换等等。        接下来就一起来学习这些功能并且能够模拟实现以下这些函数的功能。 strlen函数 介绍并且使用 简单了来说就是可以得到字符串的长度的函数注意事项 1、字符串已经 \0 作为结束标志strlen函数返回的是在字符串中 \0 前面出现的字符个数不包 含 \0 )。         2、参数指向的字符串必须要以 \0 结束。         3、注意函数的返回值为size_t是无符号的 易错 。 #includestdio.h #includestdlib.h int main() {char arr[] { abcdefg };printf(%u\n, strlen(arr));//因为strlen返回值是一个无符号整型我们可以用%u打印return 0; } 很容易计算出结果是7也就是这个字符串中有7个字符。 模拟实现strlen函数 我们可以自己编写自己的strlen函数只需要返回一个整型然后即可接下来用三种方式模拟实现strlen函数。 方法一while循环       代码如下 int my_strlen(char *arr) {int num 0;while (1){if (*arr \0){break;}arr;num;}return num; } int main() {char arr[] { abcdefg };printf(%d\n,my_strlen(arr));return 0; } 方法二递归 int my_strlen(char* arr) {if (*arr \0){return 0;}else{return 1 my_strlen(arr 1);} } int main() {char arr[] { abcdefg };printf(%d\n,my_strlen(arr));return 0; } 方式三指针 //指针-指针的方式 int my_strlen(char *s) {char *p s;while(*p ! ‘\0’ )p;return p-s; } int main() {char arr[] { abcdefg };printf(%d\n,my_strlen(arr));return 0; } strcpy函数 介绍并使用 可以进行字符串的拷贝。从源头拷贝到目的地。 注意事项 1、源字符串必须以 \0 结束。 2、会将源字符串中的 \0 拷贝到目标空间。 3、目标空间必须足够大以确保能存放源字符串。 4、目标空间必须可变。 int main() {char arr1[] {abcde};char arr2[20] {0};strcpy(arr2,arr1);printf(%s\n, arr2);return 0; } 模拟实现strcpy函数 这里需要强调几点         1、由于是将一个数组的字符串传到另一个字符串中所以这两个字符串里面应该都有位置也就是传过去的地址不能是空值NULL   所以用assret断言一下如果是空值电脑会进行报错。         2、因为传进去的时候也要将\0传进去所以当判断是\0的时候应该要跳出循环在跳出之前最后将\0传进去。 根据注意事项即可对strcpy函数进行模拟返回类型为char*。代码如下 #includeassert.h char* my_strcpy(char* arr2, const char* arr1) {assert(arr1 !NULL);assert(arr2 ! NULL);char* arr arr2;while (1){if (*arr1 \0){*arr2 *arr1;break;}*arr2 *arr1;arr1;arr2;}return arr; } int main() {char arr1[] {abcde};char arr2[20] {0};my_strcpy(arr2, arr1);printf(%s\n,arr2 );return 0; } 当然这里可以对代码进行升级升级如下 #includeassert.h char* my_strcpy(char* arr2, const char* arr1) {assert(arr1 !NULL);assert(arr2 ! NULL);char* arr arr2;while (*arr2 *arr1){;}*arr2 *arr1;return arr; } int main() {char arr1[] {abcde};char arr2[20] {0};my_strcpy(arr2, arr1);printf(%s\n,arr2 );return 0; } strcat函数 介绍并使用 该函数可以对字符串进行追加连接 例如          int main() {char arr1[20] {abcd};char arr2[] {efgh};strcat(arr1, arr2);printf(%s\n, arr1);return 0; } 效果如下 注意事项 1、源字符串必须以 \0 结束。 2、目标空间必须有足够的大能容纳下源字符串的内容。 3、目标空间必须可修改。 模拟实现strcat函数 这里首先根据正常逻辑分析并my_strcat char* my_strcat(char*arr1,const char* arr2) {assert(arr1 ! NULL);assert(arr2 ! NULL);char* arr arr1;while (1){if (*arr1 \0){while (1){*arr1 *arr2;arr1;arr2;if (*arr2 0){*arr1 *arr2;break;}}break;}arr1;}return arr; } int main() {char arr1[20] { abcd };char arr2[] {efgh};//my_strcat(arr1, arr2);printf(%s\n, my_strcat(arr1, arr2));return 0; } 可以进行一次改进减少if语句 char* my_strcat(char*arr1,const char* arr2) {assert(arr1 ! NULL);assert(arr2 ! NULL);char* arr arr1;while (*arr1){arr1;}while (1){*arr1 *arr2;if (*arr2 0){*arr1 *arr2;break;}arr1;arr2;}return arr; } int main() {char arr1[20] { abcd };char arr2[] {efgh};//my_strcat(arr1, arr2);printf(%s\n, my_strcat(arr1, arr2));return 0; } 可以进行第三次改进 char* my_strcat(char* arr1, const char* arr2) {assert(arr1 ! NULL);assert(arr2 ! NULL);char* arr arr1;while (*arr1){arr1;}while (*arr1 *arr2)//先赋值后{;}return arr; } int main() {char arr1[20] { abcd };char arr2[] { efgh };//my_strcat(arr1, arr2);printf(%s\n, my_strcat(arr1, arr2));return 0; } strcmp函数 介绍并使用 这个函数可以实现比较两个字符串 比较的是两个字符串的ASCALL码值从第一个字符开始比较返回值是这样的  当 str1大于str2的时候返回0的数 当str1小于str2的时候返回0的数 当str1等于str2的时候返回 0的数     使用代码如下 int main() {char arr1[] {abcdf};char arr2[] {abct};if (strcmp(arr1, arr2) 0){printf();}else if(strcmp(arr1, arr2)0){printf();}else{printf();}return 0; } 模拟实现strcmp函数 初步模拟 int my_strcmp(const char* arr1, const char* arr2) {assert(arr1 ! NULL);assert(arr2 ! NULL);while (1){if (*arr1 *arr2){return 1;}else if(*arr2 *arr1){return -1;}else if (*arr2 \0 *arr1 \0){return 0;}arr1;arr2;}} int main() {char arr1[] {abcdef};char arr2[] {abcdfk};int c 0;c my_strcmp(arr1,arr2);if (c 0){printf();}else if (c 0){printf();}elseprintf();return 0; } 二次修改 可以自己分析一下while函数。 int my_strcmp(const char* src, const char* dst) {int ret 0;assert(src ! NULL);assert(dst ! NULL);while (!(ret *(unsigned char*)src - *(unsigned char*)dst) *dst){src;dst;}if (ret 0)ret -1;else if (ret 0)ret 1;return ret; } int main() {char arr1[] {abcdef};char arr2[] {abcdefo};int c 0;c my_strcmp(arr1,arr2);if (c 0){printf();}else if (c 0){printf();}elseprintf();return 0; }
http://www.dnsts.com.cn/news/280360.html

相关文章:

  • 汕头市企业网站建设服务机构网站建设地图素材
  • 视频网站开发代码如何做好一个购物网站
  • 设计师作品集网站房屋装修设计软件哪个好用
  • 网站模块删除昆山广告设计公司
  • 品牌网站设计制作哪家好免费游戏源码网
  • 网站建设教程吧互联网广告销售
  • 安装字体怎么在wordpressseo技术是什么
  • wordpress怎么可视化构建页面怀化网站优化
  • 网站搜索页面怎么做淄博建设公司网站
  • 国内美食网站欣赏html制作简单企业网页
  • 如何查找各种网站优秀app界面设计案例
  • 大气网站源码下载编程软件scratch免费下载
  • 商务网站开发前期项目费用预算网站开发计划甘特图
  • 自己做的视频可以同时上传到几家网站荔枝视频在线观看免费最新
  • 建设公司网站方案企业网站开发培训
  • 鞋子网站建设规划书做网站几百块可信吗
  • 网站建设 风险论坛制作
  • 什么网站比较容易做权重精选合肥网站建设
  • 江门移动网站建设多少钱系统优化大师官方下载
  • 做一个网站花多少钱怎样编辑网站标题
  • 淄博网站制作定制技术平价建网站
  • WordPress页面增加底部栏企业seo外包
  • 舟山市建设局网站官网mini1cn下载迷你世界登录
  • 汕头网站建站公司在线logo生成免费
  • 付网站建设费用 会计科目黑科技网站
  • 吉恩聊城网站建设佛山网站建设 骏域
  • 技能网站建设项目需求网站的开发和建设有什么区别
  • 网站开发要服务器吗怎么把做的网站发布
  • 网站定制一般价格多少官方网站下载免费app
  • 企业网站建设的基本流程重庆建筑工程信息管理平台