• 等级
  • 7064 访问
  • 83 原创
  • 0 转发
  • 68923 排名
  • 2 评论
  • 3 获赞

模拟实现atoi 函数

1.跳过前面的空白字符(例如空格,tab缩进)等,可以通过isspace( )函数来检测;  2.遇上数字或正负符号才开始转换,而在遇到非数字或’\0’才结束转换,并将结果返回。  3.如果 ptr不能转换成 int 或者 ptr为空字符串,那么将返回 0。  4.该函数要求被转换的字符串是按十进制数理解的。 #include<iostream> using namespace s...

2018-08-28 16:37:25

数据结构——快速排序

1.首先定义一个基准值:tmp =  arr[i],且让j--; 当arr[j] > tmp;时 j 不动,开始i++; 当arr[i] >tmp;时    交换arr[i]和arr[j];   当i,j相遇时,交换tmp 与 arr[i]   此时相遇点左边都小于基准值,右边的都大于基准值,递归操作就行。 #include<stdio.h>...

2018-08-22 15:19:52

排序算法——归并排序

  #include<stdio.h> #include<windows.h> void MergeArray(int* arr, int left, int mid, int right, int* tmp) { int index_left = left; int index_right = mid; int tmp_left = left; while...

2018-08-22 14:57:00

数据结构——复杂链表的复制

题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。 对于复杂链表,一般会在next域的基础上再增加一个random域,这个指针会指向任意节点或者是一个NULL。                                                  在对复杂链表进行复制时,也要对ran...

2018-08-22 14:56:01

模拟实现strlen字符串长度(递归,非递归),strcpy字符串拷贝、strncpy(指定长度拷贝)、strcat(字符串拼接),strcmp(字符串比较)

strlen: #include<stdio.h> #include<windows.h> //模拟实现strlen 非递归 int mystrlen1(const char* str) { if (str == NULL) { return -1; } int count = 0; char*p = str; while (*p != '\0') ...

2018-08-15 17:51:37

宏定义

宏定义: 1.数值宏常量: 宏定义可以出现在代码的任何地方。从本行宏定义开始,之后的代码就都认识这个宏了,而且也可以把任何东西定义成宏。 #define PI 3.141592654 在之后的代码可以直接使用PI来代替这一串数字,而且最好这么做,要不然当代码中有多个这串数字,而我现在要更改它的精度,这可就太麻烦了。所以只需要在宏定义中直接修改它的值就行。 #define ERROR_...

2018-08-13 15:01:39

位运算符、++、--操作符

位运算符: $:按位与    |:按位或    ~:取反    ^:按位异或 按位异或可以实现两个变量值的交换,但是并不推荐。(a ^= b;b ^= a ;a ^= b;). 左移和右移: <<、>>都是双目运算符, “<<”将二进制向左移动指定位,高位丢弃,低位补0. “>>”当为负数时,根据编译系统的规定补0,或者1. 例:0x0...

2018-08-13 14:22:04

C语言关键字——static、sizeof、volatile

static:(2个作用) 1、static:修饰变量: 变量又分为局部变量和全局变量,但是它们都存储在内存的静态区。 静态全局变量:作用域仅限于变量被定义的文件当中,其他文件即使使用extern声明也没有办法使用。或者说是从被定义的地方开始,一直到文件结尾都不能使用,并且在定义之前的代码行也不能使用。如果想使用的话必须加上extern,或者简单一点,直接定义在文件顶部就行。 静态局部变量...

2018-08-13 01:58:55

C语言——排序(冒泡、选择、插入)

typedef int(*Compare)(int a,int b);//回调函数 //从大到小(从小到大) int Greater(int a,int b) { return a > b ? 1:0; } int Less(int a,int b) { return a < b ? 1:0; } void Swap(int* a,int* b) { ...

2018-07-26 13:11:17

搜索二叉树的基本操作(递归与非递归)

搜索二叉树:     在搜索二叉树中,根节点大于所有左子树节点的值,小于所有右子树节点的值。 本博客中涉及到的基本操作有: 1.递归与非递归的插入 2.递归与非递归的删除 3.递归与非递归的查找 #include<stdio.h> #include<stdlib.h> typedef char SearchTreeType; typedef struct ...

2018-07-25 13:48:03

实现简单的日期类:Date

Date.h #pragma once #include<iostream> using namespace std; class Date { public: Date(int year = 2018,int month = 7,int day = 19) :_year(year) ,_month(month) ,_day(day) ...

2018-07-25 11:18:54

网络——TCP协议

TCP    TCP是一种面向有连接的传输层协议,它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。此外TCP还能够有效的利用带宽,缓解网络拥堵。    然而,为了建立于断开连接,有时它至少需要7次的发包和收包(三次握手、四次挥手),导致网络流量的浪费。TCP报头格式:32位序列号:是指发送数据的位置,每发送一次数据,就累加一次数据字节数的大小。序列...

2018-07-06 11:12:54

网络——IP协议

TCP/IP的心脏是互联网层。这一层主要是IP和ICMP两个协议组成。IP相当于OSI参考模型中的第三层——网络层。网络层的主要作用是:“实现终端节点之间的通信”,点对点通信。            ...

2018-06-21 13:49:34

Web协议(二)

ICMP协议:ICMP协议是一个网络层协议。                                            ICMP功能:1.确认IP包是否成功到达目标地址。2.通知在发送过程中IP包被丢弃的原因。3.ICPM是基于IP协议工作的,但并不是传输层的功能。4.ICMP只能搭配IPv4使用。IPv6 对应使用ICMPv6.ping命令:[dyt@iz2ze2wt8nsnj7uk...

2018-06-20 19:14:20

Web协议(一)

以太网帧格式:            1.源地址和目的地址值得是网卡的硬件地址(MAC地址),出厂时固化。2.帧协议类型字段有三种值:IP、ARP、RARP。3.帧末尾是CRC效验码。认识MAC地址1.MAC地址用来标识数据链路层中相邻的节点2.在网卡出厂时就确定,基本不能修改。3.长度位48位,一般用16进制加冒号表示...

2018-06-20 18:05:22

C语言: 数组元素循环右移

思路:                           因为一串数字右移自身长度后还是其本身,所以需要 右移动位数 M% 数字个数N 。也就是 M= M % N,这样就保证了M<N.在得到新的M后,可以直接输出序列从N-M号元素到N-1 号元素,然后在输出0号到N-M-1号元素就行。注意:1.处理最后一个数字不输出空格可以使用count计数,只要count< N ,就输出空格。#i...

2018-06-15 14:55:24

TCP协议通讯流程

服务器初始化:调用socket,创建文件描述符调用bind,将当前文件描述符和ip/port绑定在一起,如果这个端口已经被其他进程占用,便会绑定失败。调用listen,声明这个文件描述符作为服务器的文件描述符,为后面的accept做准备。调用accept,并阻塞,等待有客户链接。建立连接的过程:三次握手调用socket,创建文件描述符调用connect,向服务器发起连接请求;(第一次):conne...

2018-06-08 16:41:59

二叉树的基本操作

tree.h#pragma once typedef char TreeNodeType; typedef struct TreeNode { TreeNodeType data; struct TreeNode* lchild; struct TreeNode* rchild; } TreeNode; void TreeInit(TreeNode** root); void...

2018-06-01 16:59:05

比较进程和多线程TCP网络编程套接字

//服务器 #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<stdlib.h> #include<stdlib.h> #include <arpa/inet.h> #include<unistd.h> #include

2018-06-01 16:58:30

TCP网络编程套接字(多进程)

//服务器 #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<stdlib.h> #include<stdlib.h> #include <arpa/inet.h> #include<unistd.h> #include

2018-06-01 16:49:58

DuckyLoser

关注
  • 计算机软件
  • 中国 陕西省 西安市