C语言
EncodedStar
爱分享,爱学习,爱助人为乐
点个关注再走吧,感谢!
展开
-
教你快速搭建一个udp服务器
UDP 服务器端的例子:#include "lib/common.h"static int count;static void recvfrom_int(int signo) { printf("\nreceived %d datagrams\n", count); exit(0);}int main(int argc, char **argv) { i...原创 2020-03-19 16:49:25 · 2924 阅读 · 0 评论 -
教你快速搭建一个tcp服务器
服务器端读取数据的程序:#include "lib/common.h"void read_data(int sockfd) { ssize_t n; char buf[1024]; int time = 0; for (;;) { fprintf(stdout, "block in read\n"); if ((n = rea...原创 2020-03-19 16:45:34 · 2151 阅读 · 0 评论 -
超级详细的字符串操作实现
strtok函数原型: char *strtok(char *s1, const char *s2)函数功能: 分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词)函数返回: 字符串s1中首次出现s2中的字符前的子字符串指针参数说明: s2一般设置为s1中的分隔字符规定进行子调用时(即分割s1的第二、三及后续子串)第一参数必须是NULL 在每一次匹配...原创 2020-03-04 19:31:45 · 390 阅读 · 0 评论 -
C语言中关键字auto、static、register、const、volatile、extern的作用
关键字auto、static、register、const、volatile、extern这些关键词都是原创 2017-04-11 15:03:51 · 478 阅读 · 0 评论 -
底层如何操作字符串
底层操作字符串原创 2017-04-13 22:18:41 · 364 阅读 · 0 评论 -
关于位运算
位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 “<<” 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 “>>”右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机转载 2017-04-06 19:13:39 · 378 阅读 · 1 评论 -
C语言创建一个二叉树
如何创建一个二叉树,先序遍历,中序遍历。#include <stdio.h>#include <stdlib.h>#include<bits/stdc++.h>#define NULLKEY '?'typedef struct btnode{ char data; struct btnode *lchild,*rchild;}btnode,*bitree;//创建一个二叉树原创 2017-04-06 19:25:19 · 21966 阅读 · 13 评论 -
堆排序是一种怎么样的体验
时间复杂度:O(n*logn) 特别适用于数据量很大的场合(百万级数据)。因为快排和归并排序都是基于递归的,数据量很大的 情况下容易发生堆栈溢出。 排序速度略低于快排。 也是一种不稳定的排序算法。比如 3 27 27 36,如果堆顶3先输出,则第三层(最后一个27)跑到堆顶, 然后堆稳定,继续输出堆顶,是刚才那个27, 这样说明后面的27先于第二个位置的27输出,不稳定。原创 2017-04-22 08:30:37 · 392 阅读 · 0 评论 -
熟悉链表
(1)单个节点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小(2)节点的删除非常方便,不需要像线性结构那样移动剩下的数据(3)节点的访问方便,可以通过循环或者递归的方法访问到任意数据,但是平均的访问效率低于线性表原创 2017-04-25 17:22:08 · 259 阅读 · 0 评论 -
linux常用头文件详解
unix/linux环境高级编程 首先说明几点:1 Linux内核所在目录为/usr/src/kernels/...2 Linux头文件所在目录为/usr/include/...3 找不见头文件可以用find命令查找 find / -name *.hlinux常用头文件如下:POSIX标准定义的头文件<dirent.h> 目录项<fcntl.h> 文件控制read,w原创 2017-07-12 14:27:46 · 1105 阅读 · 0 评论 -
各种类型在平台中所占的字节
这些事跨平台编程导致的;一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较: Tables char short int long 指针 16位平台 1字节8位 2字节16位 2字节16位 4个字节32位 2个字节 32位平台 1字节8位 2字节16位 4字节3原创 2017-10-12 16:41:42 · 395 阅读 · 0 评论 -
一篇文章解析所有C语言里字符串的操作
@函数名称: strtok 函数原型: char *strtok(char *s1, const char *s2) 函数功能: 分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词) 函数返回: 字符串s1中首次出现s2中的字符前的子字符串指针 参数说明: s2一般设置为s1中的分隔字符 规定进行子调用时(即分割原创 2017-10-17 14:55:14 · 6273 阅读 · 1 评论 -
6个变态的C语言HELLO WORLD程序
下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello1.c1234567891011 #define _________ } #define ________ putchar #define _______ main #转载 2018-01-26 19:23:34 · 256 阅读 · 0 评论 -
Hash(散列函数)
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。原创 2017-04-11 11:37:01 · 1293 阅读 · 0 评论 -
如何获取大量随机数
获取大量随机数给程序做测试原创 2017-04-05 22:25:33 · 831 阅读 · 0 评论 -
算法题:谁先倒
算法思路:首先我们可以按照题意写出一些变量 A B (甲乙) A_say,B_say,A_show,B_show(甲说,已说,甲做,乙做) Sum(记录俩个人说的和)然后我们可以按照输入的形式写出对应变量 N 这道题的复杂度为线性级,一次遍历;按照条件记录甲乙喝酒的次数如果有人醉了退出循环判断谁醉了就可以做出答案。原创 2017-03-21 15:51:08 · 436 阅读 · 0 评论 -
考试座位号问题
算法思路:由于收集的信息比较多,所以我用到了结构体(这里有些不规范我用的类一回事),然后我用到了C++自己带的链表和迭代器,链表插入的类型是定义的这个类,每次我将收集到的信息全部放到了链表里,最后通过迭代器处理收集好的数据原创 2017-03-21 16:01:32 · 929 阅读 · 0 评论 -
一个简单的题让我了解算法并且喜欢上了她
暴力破解的方法优化到用数学计算的时候,才是算法题真正存在的意义原创 2017-03-27 21:36:50 · 357 阅读 · 0 评论 -
C语言实现计算器
运算速度是线性级,而且只用一个数组占用空间也比较少,可能需要的逻辑比较复杂。但是能够解决问题。实现了不带括号的所有加减乘除运算。具体的思想:首先定义好3个存储数字变量,3个存储符号的变量,因为在四则运算中必须判断第2个有时候第三个符号后才能做出计算。然后判断完之后,将其计算出来。每次根据符号做出结果,最多判断3次符号。代码可能比较多,但是速度特别快原创 2017-03-29 15:40:10 · 6080 阅读 · 1 评论 -
LCD1602
**Stm32之LCD1602**原创 2017-01-23 02:47:25 · 745 阅读 · 0 评论 -
矩阵键盘
**Stm32之矩阵键盘**原创 2017-01-23 02:44:36 · 650 阅读 · 0 评论 -
数码管
Stm32之数码管原创 2017-01-23 02:39:45 · 863 阅读 · 0 评论 -
独立按键
Srm32之独立按键原创 2017-01-23 02:28:24 · 521 阅读 · 0 评论 -
继电器
Stm32之继电器原创 2017-01-23 02:24:27 · 1324 阅读 · 0 评论 -
蜂鸣器
Stm32之蜂鸣器原创 2017-01-23 02:19:27 · 434 阅读 · 0 评论 -
串口通信
**Stm32--串口通信原创 2017-03-29 15:55:59 · 316 阅读 · 0 评论 -
公约数和公倍数
如何算最大公约数与最小公倍数?只说短除法,就是短除符号倒过来,在除法中写除数的地方写2个数公有的质因数,然后写下2个数被公有质因数整除的商,之后再除,以此类推,直到结果互质为止。互质:如果2个数最大公约数为1,则称这2个数互质。比如(2,3)(4,5)(5,6)(6,7)最大公约数为左侧各位数字之积。最小公倍数为左侧各位数字与下边各位数字之积。原创 2017-04-08 19:57:40 · 351 阅读 · 0 评论 -
查验身份证
算法思路:首先对题意要清楚,要懂得身份证最后一位是校验位,还知道前面的几位是如何计算的,我将需要权计算的数放在一个数组里,方便每一位的计算,然后将核对的信息放在一个一维数组里,用一维数组本身的下标志巧妙的做了查询的索引减少了代码量,减少了运算。用结构体数组也是为了收集完整的信息。原创 2017-03-27 21:51:57 · 420 阅读 · 0 评论