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

企业网站建设方案范文html下载网站模板

企业网站建设方案范文,html下载网站模板,二维码生成器怎么弄,wordpress 和dokuwiki目录 (通讯录)动态增长版 实现效果 找单身狗 题目 源码 思路 三个内存函数的模拟实现 模拟实现strncpy 模拟实现strncat 模拟实现atoi (通讯录)动态增长版 该版本通讯录在原版的基础上增加了检查容量函数,实现了通讯录的动态…

目录

(通讯录)动态增长版                

实现效果

找单身狗

题目

源码

思路

三个内存函数的模拟实现

模拟实现strncpy

模拟实现strncat

模拟实现atoi


(通讯录)动态增长版                

该版本通讯录在原版的基础上增加了检查容量函数,实现了通讯录的动态增长

//检查是否需要增容
int CheckSz(Contact* pc)
{if (pc->count == pc->sz){PeoInfo* str = (PeoInfo*)realloc(pc->date, (pc->sz + ADD_SZ) * sizeof(PeoInfo));if (str == NULL){perror("CheckSz:");return 0;}else{pc->date = str;pc->sz += ADD_SZ;printf("增容成功\n");return 1;}}return 1;}

在使用添加函数时调用检查容量函数即可实现动态增长

实现效果

找单身狗

题目

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。

编写一个函数找出这两个只出现一次的数字。

例如:

有数组的元素是:1,2,3,4,5,1,2,3,4,6

只有5和6只出现1次,要找出5和6.

源码

void FindSingle(int* arr, int size,int* dog1,int* dog2)
{//计算所有数组异或结果ret   int i = 0;int ret = 0;for (i = 0; i < size; i++) {ret ^= arr[i];            }//计算ret第几位是1    int pos = 0;for ( i = 0; i < 32 ; i++){if ((ret >> i )& 1 == 1){pos = i;break;}}//计算第pos为1异或for (int i = 0; i < size; i++){if (((arr[i] >> pos) & 1) == 1){*dog1 ^= arr[i];}//计算第pos为0异或else{*dog2 ^= arr[i];}}}int main()
{int arr[] = { 1, 2, 3, 4, 5, 1, 2, 3, 4, 6 };int size = sizeof(arr) / sizeof(arr[0]);int dog1 = 0;int dog2 = 0;FindSingle(arr, size,&dog1,&dog2);printf("单身狗是%d %d",dog1,dog2);return 0;
}

思路

使用了异或的思想   相同为0  不同为1

(注意!异或比较的是二进制位 任何数与0的异或都为本身 而不是1)

1.计算所有数组异或结果ret   

2.计算ret第几位是1    
3.计算第pos为1异或

4.计算第pos为0异或

三个内存函数的模拟实现

模拟实现strncpy

从字符串中复制字符

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
#include <assert.h>//char* strncpy(char* destination, const char* source, size_t num);char* my_strncpy(char* des, const char* src, int num)
{char* temp = des;assert(des != NULL);assert(src != NULL);while (*src && num--){*des = *src;des++;src++;}*des = '\0';   //将\0拷贝return temp;}int main()
{char str1[] = "To be or not to be";char str2[40];char str3[40];my_strncpy(str2, str1, 8);my_strncpy(str3, str2, 5);puts(str1);puts(str2);puts(str3);return 0;}

模拟实现strncat

从字符串追加字符

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>
#include <assert.h>//char* strncat(char* destination, const char* source, size_t num);char* my_strncat(char* des, const char* src,int num)
{assert(des);assert(src);char* temp = des;while (*des){des++;}while (*src && num--){*des++ = *src++;}*des = '\0';return temp;}int main()
{char str1[20];char str2[20];strcpy(str1, "To be ");strcpy(str2, "or not to be");my_strncat(str1,str2,6);puts(str1);return 0;
}

模拟实现atoi

将字符串转换为整数

#define _CRT_SECURE_NO_WARNING 1#include <stdio.h>#include <ctype.h>#include <assert.h>#include <limits.h>//1.空指针
//2.空字符串
//3.空白字符
//4.数字超过范围
//enum State
{TID,FID
}state = FID;//全局的转态,它的值标志返回的值是合法还是异常int my_atoi(const char* str)
{int flag = 1;assert(str);//空指针if (*str == '\0')//空字符串{return 0;}//跳过空白字符while (isspace(*str)){str++;}if (*str == '-'){flag = -1;str++;}else if (*str == '+'){str++;}long long ret = 0;while (*str != '\0'){if (isdigit(*str)){ret = ret * 10 + flag * (*str - '0');if (ret > INT_MAX || ret < INT_MIN){return 0;}}else{return (int)ret;}str++;}state = TID;return (int)ret;}int main()
{int ret = my_atoi("123");if (state == TID){printf("%d\n", ret);}else{printf("非法返回:%d\n", ret);}return 0;
}

http://www.yayakq.cn/news/627302/

相关文章:

  • 怎么建设淘客自己的网站海门建网站公司
  • 阜阳讯拓网站建设公司可以做网站引导页的页面
  • 如何做网站流量网站建设的教程视频
  • 宁波建设局网站wordpress删除修订版
  • wordpress如何卸载插件湖南企业seo优化推荐
  • 网站要怎么做才能获得市场份额网站 404 错误页面是否自动跳转
  • 设计本网站中山企业推广网站制作
  • 编写网站方案设计书表格北京云建站模板
  • wordpress 导入网站模板博山网站建设yx718
  • 北京手机网站设计价格欢迎进入中国建设银行网站
  • 成都网站建设公司服务商顺义青岛网站建设
  • 网站 导航条企业网站建设的重要性和必要性
  • 网站购物系统制作雨辰资讯电子商务类网站开发哪个网站做签约设计师比较好
  • 网站建设的基本知识网上书城网站开发环境
  • zhihe网站建设 淘宝wordpress网站映射
  • 邯郸网站设计怎么注册湖北建设银行官方网站首页
  • 门设计的网站建设永州seo快速排名
  • 网站初期如何推广wordpress替换谷歌字体库
  • 网站的流程泰安电视台直播在线观看
  • 群晖可以做网站吗聊城网站推广怎么做
  • 网站备案成功后怎么长春电商网站建设公司
  • 哈尔滨专业做网站国外的wordpress主题公园
  • 自己做的网页加在网站文章上为什么打不开一家做公司点评的网站
  • 女生做网站编辑好还是昆山科技网站建设
  • 网站优化建设上海阿里建站服务
  • 网站服务器排行榜青岛网站建设公司效果
  • 武都区建设局网站汕头网站建设技术支持
  • 个人网站设计怎么做百度公司的企业文化
  • 怎么在移动端网站下面做联系人中国互联网公司排名100强
  • 慕枫网站建设教人做家具的网站