![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 74
C语言
☞ ♚ ☜
这个作者很懒,什么都没留下…
展开
-
当循环输入遇到EOF
一. 写出下面代码输出结果,并解释原因。#include <stdio.h>int main(int argc, char *argv[]){ int val_1 = -42; int val_2 = val_1 >> 10; printf("%d\n%d\n", val_1, val_2); unsigned int a = 42; unsigned int b = a >> 10; printf("%u\n%u原创 2021-12-14 22:10:28 · 1545 阅读 · 0 评论 -
聊天室项目文档
聊天室项目文档项目简述项目需求功能展示使用准备更改端口和IPmysql 中使用的表需要提前准备的mysql tables程序自动创建的mysql tables项目简述实现Linux环境下的简易聊天室,采用C/S模型,实现多客户端之间的稳定数据传输。可参考QQ、微信功能。聊天室项目源码聊天室项目分析聊天室项目文档项目需求1.账号管理登录、注册找回密码2.好友管理私聊(实时性)好友的添加、删除、查询查看好友列表显示好友状态(在线与否)查看聊天记录屏蔽好友消息3.群管原创 2021-08-07 17:48:09 · 411 阅读 · 0 评论 -
聊天室项目分析
聊天室项目分析项目介绍服务器架构项目介绍聊天室项目是实验室为了让我们能够更好的掌握linux下网络编程的知识的任务,也同样让我们感受到用自己所学的知识做出一些东西时的喜悦。在只有需求的背景下也极为考验对整体架构构建能力,如果不能看清全局,那就只能推到重来。服务器架构服务器要想有稳定且高效的性能就要有好的架构,epoll是IO复用中不错的方式,但仅仅使用epoll并不是最高效的,当然我实现的也并不是最高效的。...原创 2021-08-07 17:45:15 · 394 阅读 · 1 评论 -
聊天室项目源码
聊天室项目源码聊天室服务器ser.hser.cserver.c客户端cli.hcli.cclient.c聊天室在linux下使用C语言开发的一款简单的聊天程序。服务器ser.h#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mariadb/mysql.h>#include <sys/types.h>#include <sys/socket.原创 2021-08-07 17:44:05 · 227 阅读 · 1 评论 -
Linux C 网络编程(select 与 poll)
Linux C 网络编程功能selectselect介绍select应用pollpoll介绍功能有了套接字我们便可以在客户端和服务器之间传递信息,由send和recv函数来发送和接收文件,而我们不能提前知道客户端或服务器什么时候发送信息,如果客户端比较多,还要判断是哪一个客户端发来的信息。这让我们需要类似于监听套接字一样的功能(有连接就返回),select, poll, epoll都提供了这些功能,当有信息发送就返回有信息的套接字描述符,然后用recv接收信息。selectselect介绍在客户端原创 2021-07-30 21:14:27 · 203 阅读 · 0 评论 -
Linux C 网络编程(socket 套接字)
Linux C 网络编程功能套接字功能前面我们学习了系统编程,通过管道等我们可以将一个系统中的资源和信息调用起来,但这是远远不够的,我们还可以通过网络编程和其他的的系统来交互信息。为了相互通信,国际制定了TCP/IP协议,通过IP地址和端口好进行通信。套接字...原创 2021-07-28 21:38:13 · 539 阅读 · 0 评论 -
哈希表简单讲解
哈希表简单应用什么是哈希表哈希表按我自己的理解就是一个查找表,简单应用比如一个链表,它一个节点里含有两个内容typedef struct ListNode{ int value; char name[5]; struct ListNode* next;}ListNode;value用来存学生的学号,name[5]字符数组用来存学生姓名,对与这样一个链表如果我们想要找到某个学号的学生姓名就需要遍历整个链表,而哈希表便可以直接找到他/她,这里我们可以用以下指针数组Lis原创 2021-01-25 13:38:19 · 332 阅读 · 0 评论 -
前缀树讲解
前缀树功能:以树的形式存放单词组例:ininterinputappleappend红色表示一个单词的结束代码先给出代码,运行了解一下前缀树的用处:#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct Tree{ int count; struct Tree *child[26];}Node,*Trie_node;Node *Cr原创 2021-01-09 20:48:46 · 1194 阅读 · 3 评论 -
KMP算法
KMP算法给定一个 s 字符串和一个 h 字符串,在 s 字符串中找出 h字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。事例:输入:s = "aabaabaaf" h = "aabaaf"输出:3在该算法中主要难在next数组的建立,该数组有多种建立方法,我讲的是我认为较简单的.每一个字符串数组都有一个自己的next数组,例如:h = "aabaaf"next[6] = { 0, 1, 2, 0, 0, 5 }下面我们来研究如何建立next数组:为了方便我们建原创 2020-12-28 21:29:01 · 336 阅读 · 1 评论 -
排序---堆排
#排序—堆排##堆排采用简单的二叉数首先我们简单的介绍一下二叉数:这是一个简单的二叉数(该二叉数父节点的值比子节点的大)下面我们看一个父节点小于子节点的二叉数可以由数组来表示在这里圆圈里面的数表示数组的值数组的下标就是它们的序号它们的序号有一些规律:左子节点序号 = 父节点序号×2 +1右子节点序号 = 父节点序号×2 +2##下面我们简单的以图片的方式了解二叉数的原理:##下面讲解如何操作:首先把要排序的数变成一个二叉数,这里就不需要了,我们可以把数组看成一个二叉数1.我们需原创 2020-12-28 20:01:48 · 162 阅读 · 2 评论 -
算数位移和逻辑位移
算数左移和逻辑左移: 这两种位移相等,都是整体向左移,在右边加0,若最高位不为1则相当与给该数乘以2的(位移数)次方。 例: 14的二进制为00001110 14<<1--------->00011100----------->28(注意:在最高为不为1时才有增减倍性质)算数右移和逻辑右移: 算数右移:将二进制整体向右移且左边加上符号位。 例: 14的二进制为00001110 14>>1--------->原创 2020-12-16 22:10:00 · 551 阅读 · 2 评论