C语言
文章平均质量分 60
shangguan_1234
这个作者很懒,什么都没留下…
展开
-
文件实现通讯录修改版
头文件#define _CRT_SECURE_NO_WARNINGS 1#ifndef __CONTACT_H__#define __CONTACT_H__#include #include #includeenum OP{ EXIT, ADD, DEL, MODIFY, SEARCH, DISPLAY, SORT, CLEAR};#define N原创 2016-06-03 00:39:00 · 284 阅读 · 0 评论 -
【数据结构课设】英汉互译词典
#include #include #include struct Word{ char sEnglish[20]; //英文单词 char sChinese[40]; //中文意思 char sWordKind[10]; //词性 struct Word* pNext; //指向下一个节点指针};struct Word* pShead = NULL;//链表头原创 2016-10-15 13:04:43 · 4614 阅读 · 4 评论 -
【计算机网络】I/O多路转接之poll
不同与select使用三个位图来表示三个fdset的方式,poll使用一个 pollfd的指针实现。 pollfd结构包含了要监视的event和发生的event,不再使用select“参数-值”传递的方式。同时,pollfd并没有最大数量限制(但是数量过大后性能也是会下降)。 和select函数一样poll返回后,需要轮询pollfd来获取就绪的描述符。 从上面看,select和poll都需原创 2017-03-18 16:55:27 · 587 阅读 · 0 评论 -
【面试题】剑指offer 19
题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像 代码#include<iostream>#include<cstdlib>using namespace std;struct BinTreeNode{ int _value; BinTreeNode* _pLeft; BinTreeNode* _pRight; BinTreeNode(int x)原创 2017-03-09 19:12:52 · 256 阅读 · 0 评论 -
【面试题】剑指offer20
题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如: 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16 输出 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 代码#include<iostream>#include<cstdlib>using namespace std;void Pr原创 2017-03-09 20:51:32 · 227 阅读 · 0 评论 -
【面试题】剑指offer 15
题目: 输入一个链表,输出该链表的倒数第k个节点。#include<iostream>#include<cstdlib>using namespace std;struct ListNode{ ListNode* pNext; int _value;};class List{public: List() :pHead(NULL)原创 2017-03-06 20:03:22 · 315 阅读 · 0 评论 -
【面试题】剑指offer21
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,pop,push的时间复杂度都为O(1)#include<stack>#include<cassert>#include<iostream>using namespace std;template<typename T>class MyStack{public: MyStack()原创 2017-03-10 12:07:12 · 286 阅读 · 0 评论 -
【计算机网络】dup/dup2
对输入文件描述符进行重定向 dup#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>#include<fcntl.h>int main(){ int fd=open("./log",O_CREAT|O_RDWR,0644); if(fd<0) { perr原创 2017-03-15 20:06:36 · 903 阅读 · 0 评论 -
【计算机网络】I/O多路转接之epoll
什么是epoll epoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的相关系统调用原创 2017-03-25 19:57:18 · 589 阅读 · 0 评论 -
【shell脚本】shell的符号
shell执行脚本1.方法一: chmod +x myshell.sh 2.方法二:/bin/bash myshell.sh 以第一种为例 本地变量本地变量的复制及查看 变量引用如果⼀个变量叫做VARNAME,用VARNAME可以表示它的值,在不引起歧义的情况下也可以用{VARNAME}可以表示它的值,在不引起歧义的情况下也可以 用VARNAME表示它的值。通过以下例子较这两种表示法的不原创 2017-03-25 20:55:59 · 664 阅读 · 0 评论 -
【计算机网络】I/O多路转接之select
系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的,对应FILE *结构的表示就是stdin、stdout、stde原创 2017-03-16 12:04:25 · 858 阅读 · 0 评论 -
【算法】常见的七种排序及其算法优化
1、插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的原创 2016-11-23 21:23:37 · 4025 阅读 · 0 评论 -
详解可变参数列表
详解可变参数列表原创 2016-04-18 09:38:25 · 474 阅读 · 0 评论 -
人脸识别部分内存调用优化
优化内容 :void realloc_if_need(){ size_t reserve_items=std::max(static_cast<int>(max_items/10),512); size_t allocate_items=0; bool need_realloc=false; if(getAllocatedSize()=原创 2017-08-23 15:03:21 · 816 阅读 · 0 评论 -
坦克大战
#include#include#include#include#includeusing namespace std;HANDLE Mutex=CreateMutex(NULL,FALSE,NULL);//互斥对象int GameOver=0;int level=0;int map[23][23];//坦克种类,Normal为玩家坦克#define Normal 0#原创 2016-10-15 13:02:02 · 456 阅读 · 0 评论 -
俄罗斯方块
#include#include#include#include#includeusing namespace std;#define A1 0//A代表长条型,B为方块,C为L型,D为闪电型(实在无法描述那个形状)#define A2 1#define B 2#define C11 3#define C12 4#define C13 5#define C14 6原创 2016-10-15 13:00:51 · 812 阅读 · 0 评论 -
动态实现顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。下面来进行顺序表的动态实现头文件#ifndef __SEQLIST_D_H__#define __SEQLIST_D_H__#include#include原创 2016-06-03 00:31:43 · 277 阅读 · 0 评论 -
静态顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。长这个样子下面简单介绍顺序表的操作头文件#include#include#include#include#define MAX 100typede原创 2016-06-03 00:21:09 · 375 阅读 · 0 评论 -
插入排序、选择排序
插入排序:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所原创 2016-06-03 00:04:44 · 259 阅读 · 0 评论 -
C语言注释转化为C++注释
在C语言中标准的注释格式为"/*内容*/",在C++中标准的注释格式为“//”,今天来介绍将c注释转化为C++的注释的方法。首先先给一堆用C语言注释的一对代码,进行分析(将此代码保存在input.c文件夹里)// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; */int j = 0;原创 2016-06-02 23:57:11 · 481 阅读 · 0 评论 -
冒泡排序(C语言版)
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。它的变化过程如下图下面我们用代码实现#include#includeint main(){ int i,j;int arr[10]={1,2,3,5,7,8,9,4,2,1原创 2016-06-02 23:09:05 · 435 阅读 · 0 评论 -
文件存储实现通讯录
文件操作fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。 文件使用方式 意 义 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只原创 2016-05-21 16:24:57 · 548 阅读 · 0 评论 -
动态存储实现通讯录
动态存储方式所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。原创 2016-05-21 16:17:59 · 311 阅读 · 0 评论 -
静态存储实现通讯录
静态存储方式所谓静态存储方式是指在程序运行期间分配固定的存储空间的方式变量的存储方式可分为:"静态存储"和"动态存储"两种。静态存储变量通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。全局变量即属于此类存储方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给行参分配存储单元,只是在函原创 2016-05-21 16:12:49 · 322 阅读 · 0 评论 -
模拟实训strstr,strrstr
模拟实训strstr,strrstr首先我是个渣渣,本文仅限参考1、strstr是一种函数,从字符串str1中查找是否有符串str2,如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。MSDN中举了这样的例子:/* STRSTR.C */#include #include char str[] = "lazy";char s原创 2016-05-07 18:50:09 · 534 阅读 · 0 评论 -
模拟实现strrchr,strchr
模拟实现strrchr,strchr首先我是个渣渣,本文仅限参考1、要模拟strrchr,首先得先弄清strrchr是个什么东西strrchr() 函数查找字符在指定字符串中从后面开始的第一次出现的位置,如果成功,则返回从该位置到字符串结尾的所有字符,如果失败,则返回 false。与之相对应的是strchr()函数,它查找字符串中首次出现指定字符的位置。知道这个就好办了代码如下原创 2016-05-07 18:43:58 · 711 阅读 · 1 评论 -
函数指针,函数指针数组,指向函数指针数组的指针
函数指针,函数指针数组,指向函数指针数组的指针首先我是个渣渣,本文仅限参考1、函数指针:顾名思义函数指针就是指向函数的指针函数类型 (*指针变量名)(形参列表); “函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。 例如: int (*f)(int x);原创 2016-04-27 13:58:37 · 464 阅读 · 0 评论 -
指针数组与数组指针
指针数组与数组指针首先我是个渣渣,本文仅限参考1、首先先分清指针数组和数组指针的区别:指针数组;首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32位系统下永远占4个字节,至于它指向的数组占几个字节,我们并不知道。它是“指向数组的指针”的简称。2、下面来说明指针数组与数组指原创 2016-04-27 10:13:22 · 673 阅读 · 2 评论 -
模拟实现strncat函数(字符串追加函数)
模拟实现strncat函数(字符串追加函数)首先我是个渣渣,本文仅限参考 头文件定义了一些宏,当函数参数未知时去获取函数的参数变量:typedef va_list 宏:va_start()va_arg()va_end()变量和定义va_list类型通过stdarg宏定义来访问一个函数的参数表,参数列表的末尾会用省略号省略 声明:void va_s原创 2016-04-24 12:07:16 · 1042 阅读 · 1 评论 -
c语言与C++的区别
c语言与C++的区别有很多: 1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个集体。但你也可能单独调用API。 3,特别是C++中的图形处理,它和语言的原创 2016-03-30 22:54:11 · 4831 阅读 · 0 评论 -
单链表的一些基本操作
本文主要介绍了单链表的初始化/头插/头删/尾插/尾删/查找/指定位删除/指定数删除/指定位插入/销毁/排序等.头文件#ifndef __LINKLIST_H__#define __LINKLIST_H__#include#include#includetypedef int DataType;typedef struct LinkNode{DataType data;s原创 2016-06-04 19:13:11 · 526 阅读 · 0 评论 -
模拟计算器
#include#include#include#include #define ElemType intusing namespace std;typedef struct Stack{ ElemType * base; ElemType * top; int stacksize;}SqStack;void Menu(); void exit_E();int In_Op原创 2016-10-15 12:52:14 · 487 阅读 · 0 评论 -
【c】杨辉三角
#include#includeint main(){ int i,j; int a[i][j]={0}; for(i=0;i<=20;i++) { for(j=0;j<=20;j++) { if(a[i+1][j+1]==(a[i][j]+a[i][j+1])) printf("%d",a[i][j]); } printf("\n"); } r原创 2016-10-15 12:55:34 · 377 阅读 · 0 评论 -
对某门禁系统部分代码做线程控制
线程控制部分代码 c++11中的方法 m_Worker = std::make_shared<Linkface::SimpleWorker>([&](){ int len = m_Buffer.DataLen(); if(len <= 0) return; BYTE * buffer = new BYTE[len]; m_Buffer原创 2017-08-23 15:09:03 · 816 阅读 · 0 评论