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

可以做国外购物的网站有哪些日照网络推广公司

可以做国外购物的网站有哪些,日照网络推广公司,安阳 网站建设,南充做网站的公司💓个人主页:mooridy 💓专栏地址:C语言 关注我🌹,和我一起学习更多计算机的知识 🔝🔝🔝 strstr函数模拟实现 函数返回字符串str2在字符串str1中第⼀次出现的位置,如果找不…

💓个人主页:mooridy
💓专栏地址:C语言
关注我🌹,和我一起学习更多计算机的知识
🔝🔝🔝

strstr函数模拟实现

在这里插入图片描述
函数返回字符串str2在字符串str1中第⼀次出现的位置,如果找不到,返回NULL.

//返回str2在str1中出现的位置,如果找不到,返回NULL
char* strstr(const char* str1, const char* str2) {//1.如果str2为空串if (!str2) {return str1;}char* cp=str1;用于遍历str1while (*cp) {char* p1 = cp;char* p2 = str2;//每次都要归位while (*p1 && *p2) {  //条件:两个都还没走到末尾if (*p1 == *p2) {p1++;p2++;}else {break;}}if (!*p2) { return cp; }else { cp++; }}
}

测试用例:

int main() {// 测试用例1:str2在str1中存在char str1[] = "hello world";char str2[] = "world";char* result1 = strstr(str1, str2);if (result1) {printf("测试用例1:找到了,位置为:%s\n", result1);}else {printf("测试用例1:未找到\n");}// 测试用例2:str2在str1中不存在char str3[] = "abcdefg";char str4[] = "xyz";char* result2 = strstr(str3, str4);if (result2) {printf("测试用例2:找到了,位置为:%s\n", result2);}else {printf("测试用例2:未找到\n");}// 测试用例3:str2为空串char str5[] = "test";char* str6 = "";char* result3 = strstr(str5, str6);if (result3) {printf("测试用例3:找到了,位置为:%s\n", result3);}else {printf("测试用例3:未找到\n");}// 测试用例4:str1为空串,str2不为空串char* str7 = "";char str8[] = "test";char* result4 = strstr(str7, str8);if (result4) {printf("测试用例4:找到了,位置为:%s\n", result4);}else {printf("测试用例4:未找到\n");}return 0;
}

在这里插入图片描述

memcpy函数模拟实现

在这里插入图片描述

设计成void指针的原因:void 是一种无类型指针,可以指向任何类型的数据。这样 memcpy 就能够用于不同类型数据的内存复制操作,无论是基本数据类型(如 int、char、float 等)还是自定义数据类型(如结构体、联合体等),都可以使用 memcpy 进行内存复制,而不需要为每种数据类型都编写一个专门的复制函数。

void* mymemcpy(void* dest, void* src,size_t num) {char* p1 = (char*)dest;char* p2 = (char*)src;void* ret = (char*)dest;while (num--) {*p1 = *p2;p1++;p2++;}return ret;
}

测试用例:

int main() {// 测试用例 1: 复制字符数组char src1[] = "Hello, World!";char dest1[20];mymemcpy(dest1, src1, strlen(src1) + 1);assert(strcmp(dest1, src1) == 0);printf("测试用例 1 通过: 复制字符数组成功,复制结果: %s\n", dest1);// 测试用例 2: 复制整数数组int src2[] = { 1, 2, 3, 4, 5 };int dest2[5];mymemcpy(dest2, src2, sizeof(src2));for (int i = 0; i < 5; i++) {assert(dest2[i] == src2[i]);}printf("测试用例 2 通过: 复制整数数组成功\n");// 测试用例 3: 复制单个字符char src3 = 'A';char dest3;mymemcpy(&dest3, &src3, sizeof(char));assert(dest3 == src3);printf("测试用例 3 通过: 复制单个字符成功,复制结果: %c\n", dest3);printf("所有测试用例通过!\n");return 0;
}

memmove函数模拟实现

在这里插入图片描述
和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。
如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。

思路精华:
当dest地址低于src地址时,指针从前往后;

当src地址低于dest地址时,指针从后往前。

详细请见:这篇博客

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <assert.h>
void* mymemmove(void* dest, void* src, size_t num) {//判断指针是否为空assert(dest);assert(src);void* ret = dest;char* p1 = (char*)dest;char* p2 = (char*)src;//dest在前src在后,从前往后if (dest < src) {while (num--) {*p1 = *p2;p1++;p2++;}}else {  //dest在后src在前,从后往前p1 = (char*)dest + num - 1;p2 = (char*)src + num - 1;while (num--) {*p1 = *p2;p1--;p2--;}}return ret;}

测试用例

int main() {// 非重叠内存复制示例char non_overlap_src[] = "Hello, World!";char non_overlap_dest[20];// 使用 memmove 进行非重叠内存复制mymemmove(non_overlap_dest, non_overlap_src, strlen(non_overlap_src) + 1);printf("非重叠内存复制结果: %s\n", non_overlap_dest);// 重叠内存复制示例(dest 在前,src 在后)char overlap_str1[] = "abcdefg";// 将 "cde" 复制到字符串开头mymemmove(overlap_str1, overlap_str1 + 2, 3);printf("重叠内存复制(dest 在前,src 在后)结果: %s\n", overlap_str1);// 重叠内存复制示例(src 在前,dest 在后)char overlap_str2[] = "abcdefg";// 将前三个字符复制到偏移 2 的位置mymemmove(overlap_str2 + 2, overlap_str2, 3);printf("重叠内存复制(src 在前,dest 在后)结果: %s\n", overlap_str2);return 0;
}

在这里插入图片描述
To be continued~

http://www.dtcms.com/wzjs/162627.html

相关文章:

  • 网站后台发文章图片链接怎么做龙华网站建设
  • 昆山网站制作哪家强网络营销的方式有几种
  • 手机怎么制作网站网址线上运营推广
  • 南京seo网站建设费用产品seo基础优化
  • 河南建设厅网站查证广告软文小故事200字
  • 怀化二医院网站高端定制网站建设公司
  • 网站加速优化爱站网seo培训
  • 做门户网站最重要的是什么2022世界足球排行榜
  • 百度网站建设微信封面网站seo优化怎么做
  • 企业建站系统下载全国唯一一个没有疫情的城市
  • 国外网站设计2022最近十大的新闻热点
  • 怎么做自己的网站赚钱企业网络营销策划案
  • 建设物流网站品牌推广工作内容
  • 西宁做网站的公司免费的网页入口
  • 提升网站建设百度怎么优化关键词排名
  • 江西网站建设推广公司网络优化方案
  • 寮步镇仿做网站小升初最好的补课机构排行榜
  • 建设银行不招聘网站百度云手机登录入口
  • 南京高端网站开发企业网络营销推广方案策划
  • 容桂做外贸网站短期培训学什么好
  • 南通哪里做网站公司网址怎么制作
  • 赵县网站建设互联网舆情信息
  • 福建建设部网站廊坊seo排名优化
  • 麻涌手机网站设计优化搜索引擎营销
  • 朝阳免费网站制作互联网媒体推广
  • 做私服网站需要些什么餐饮营销引流都有什么方法
  • 骏驰网站建设购物网站
  • 浙江品牌网站建设宁波网站seo哪家好
  • 网站 部署 域名网站seo主要是做什么的
  • 无法打开网站若要访问本地iis网站必须安装下列iis组件seo关键词优化要多少钱