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

网站怎么做脚注西安seo诊断

网站怎么做脚注,西安seo诊断,网站资料要提供哪些,哪些购物网站做的比较简洁有品质1. strlen函数的使用和模拟实现 size_t strlen(const char* str); 1.1 函数功能以及用法 字符串长度 strlen函数的功能是计算字符串的长度。在使用时&#xff0c;要求用户传入需要计算长度的字符串的起始位置&#xff0c;并返回字符串的长度。 #include <stdio.h> #…

1. strlen函数的使用和模拟实现

size_t strlen(const char* str);

1.1 函数功能以及用法

字符串长度

strlen函数的功能是计算字符串的长度。在使用时,要求用户传入需要计算长度的字符串的起始位置,并返回字符串的长度。

#include <stdio.h>
#include <string.h>int main()
{char arr[] = "abcdef";int len = strlen(arr);printf("%d\n", len);return 0;
}

1.2 函数的原理

该函数在得到字符串的起始位置之后,会从该起始位置开始依次向后检索并计数,直到遇到'\0'为止。

1.3 注意事项

1. 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' )。

2. 参数指向的字符串必须要以 '\0' 结束。

3. 注意函数的返回值为size_t,是无符号的( 易错 )

针对第三点,我们给出以下示例

#include <stdio.h>
#include <string.h>
int main()
{const char* str1 = "abcdef";const char* str2 = "bbb";if(strlen(str2)-strlen(str1)>0)//出错{printf("str2>str1\n");} else{printf("srt1>str2\n");}return 0;
}

由于strlen函数返回值的类型为“size_t”(unsigned int),所以两个strlen函数返回值相减,得到的结果的类型也是“size_t”,而该类型的数据一定会是大于等于零的,这与我们的代码所表达的意思不一致。

1.4 模拟实现

strlen的实现较为简单,所以这里给出三种实现方式:

1.4.1 计数器

在函数内部创建一个计数器,用以记录字符的个数

size_t my_strlen1(const char* str)
{assert(str);size_t count = 0;//计数器while(*str != '\0'){count++;str++;}return count;
}

1.4.2  指针-指针

size_t my_strlen2(const char* str)
{assert(str);const char* strx = str;while(*strx != '\0'){strx++;}return strx - str;//指针-指针
}

1.4.3 递归

size_t my_strlen3(const char* str)
{assert(str);if(*str == '\0')return 0;elsereturn 1 + my_strlen3(str+1);
}

2. strcpy函数的使用和模拟实现

char* strcpy(char * destination, const char* source);

2.1 函数功能以及用法

字符串拷贝

该函数会把“source”指向的字符串拷贝到“destination”指向的字符数组数组中,包括'\0'。在使用时,要求用户分别传入目标数组的起始地址和源字符串的起始地址,并返回目标数组的起始地址

#include <stdio.h>
#include <string.h>int main()
{char name[20] = {0};strcpy(name, "zhangsan");printf("%s\n", name);return 0;
}

2.2 函数的原理

“destination”和“source”依次逐字节移动,每次移动前将“source”指向的字符拷贝到“destination”指向的空间,直到将'\0'拷贝到目标数组中为止。

2.3 注意事项

1. 源字符串必须以 '\0' 结束。

2. 会将源字符串中的 '\0' 拷⻉到⽬标空间。

3. ⽬标空间必须⾜够⼤,以确保能存放源字符串。

4. ⽬标空间必须可修改。比如目标空间是处存放的是一个常字符串或者被const修饰的字符数组。

#include <stdio.h>
#include <string.h>int main()
{const char* p = "abcdef";char arr[] = "bit";strcpy(p, arr);return 0;
}

2.4 模拟实现

char* my_strcpy(char* dest, const char* src)
{assert(dest && src);char* ret = dest;while(*dest++ = *src++);return ret;
}

3. strcat函数的使用和模拟实现

char* strcat(char* destination, const char* source);

3.1 函数功能以及用法

字符串追加

该函数会将“source”指向的字符串追加到“destination”指向的字符数组的后面,原本的'\0'会被覆盖,源字符串的'\0'会被一起追加到字符数组之后(某些实现中可能是额外添加的'\0')。在使用时,要求用户分别传入目标数组的起始地址和源字符串的起始地址,并返回目标数组的起始地址。

#include <stdio.h>
#include <string.h>int main()
{char arr1[20] = "hello ";strcat(arr1, "world!");printf("%s\n", arr1);return 0;
}

3.2 函数的原理

首先找到目标数组结尾处的'\0',将其当作目标空间的起始地址的话,接下来的步骤就与strcpy相同了。

3.3 注意事项

1. 源字符串必须以 '\0' 结束。

2. ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。

3. ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。

4. ⽬标空间必须可修改。

5. 字符串自己给自己追加可能会出错。

#include <stdio.h>
#include <string.h>int main()
{char arr[20] = "hello";strcat(arr, arr);printf("%s\n", arr);return 0;
}

在第一个字符拷贝结束时,arr结尾的'\0'就被覆盖了,这时,strcat函数就不知道追加应该何时停止。 

3.4 模拟实现

char* my_strcat(char* dest, const char* src)
{assert(dest && src);char* ret = dest;while(*dest){dest++;}while(*dest++ = *src++);return ret;
}

4. strcmp函数的使用和模拟实现

int strcmp(const char* str1, const char* str2);

4.1 函数功能以及用法

字符串比较

C语言标准规定:

第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字 。

第⼀个字符串等于第⼆个字符串,则返回0 。

第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字。

#include <stdio.h>
#include <string.h>int main()
{char arr1[20] = "zhangsan";char arr2[] = "zhangsanfeng";int ret = my_strcmp(arr1, arr2);if(ret < 0)printf("<\n");else if(ret == 0)printf("=\n");elseprintf(">\n");return 0;
}

4.2 函数的原理

按下标依次比较两个字符串元素的ascll码值。

4.3 注意事项

好像没什么好注意的。

4.4 模拟实现

int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);while(*str1 == *str2){if(*str1 == '\0')return 0;str1++;str2++;}return (*str1 - *str2);
}
http://www.dinnco.com/news/82736.html

相关文章:

  • 北京家居网站建设唯尚广告联盟平台
  • 哪些女性网站做女性慈善事业本地免费发布信息网站
  • 做cpa建什么网站教育培训机构有哪些
  • 网站网站怎么定位国家免费职业技能培训
  • 中山市政府网站建设北京seo公司网站
  • 网站开发做什么的国际最新新闻热点事件
  • 重启服务器 wordpressseo查询工具
  • 服装网站banner怎么做app开发者需要更新此app
  • 网站制作首选 新鸿儒现在疫情怎么样了最新消息
  • 著名建站公司自己做网站的软件
  • 北京 科技网站建设免费发广告的网站
  • 旅游网站的建设依据和背景美国疫情最新消息
  • 做五金建材市场的网站重庆森林经典台词梁朝伟
  • 台州建设局招标投标网站今日重大新闻头条十条
  • 厦门建设执业资格注册管理中心网站关键词的优化方法
  • 网站源码安装教程国内免费发布产品的平台
  • 南昌网站建设多少钱最新新闻消息
  • wordpress培训插件江苏网站seo
  • 新手建网站什么类型好全网搜索关键词查询
  • 常州网站建设智博网络营销这个专业怎么样
  • css div旅游j景区网站模板百度指数工具
  • 宝山网页设计制作seo实战技术培训
  • 郓城做网站公司永久免费google搜索引擎
  • 深圳房地产网站设计百度关键词优化首选667seo
  • 咖啡网站模板最近的国内新闻
  • 做网站收入怎么样网络营销知识点
  • 帝国网站制作广告新手学seo
  • 网站地图怎么做学网络营销有用吗
  • 如何评判一个网站建设的怎么样安卓优化大师历史版本
  • 台州网站建设技术外包域名地址查询