![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言进阶
文章平均质量分 62
慕白昂
这个作者很懒,什么都没留下…
展开
-
C语言:函数指针和指针函数学习
函数指针就是返回值类型是指针的函数(后面说的是本身是什么,前面说的是返回值类型是什么)原创 2022-09-14 05:36:06 · 351 阅读 · 0 评论 -
tinyhttpd 超轻量型HTTP服务器源码详细解析
tinyhttpd 超轻量型HTTP服务器源码详细解析源码解析入口函数里定义了几个变量,分别是:服务器套接字、客户端套接字,端口号、用于处理TCP网络通信地址的结构体sockaddr_in、其长度client_name_len、线程标识符调用startup函数,其步骤是创建http套接字,绑定地址信息,建立监听连接,最后返回监听套接字循环等待浏览器的连接,当每次获取到新连接时,为该请求创建一个新套接字,并启动线程处理新连接接受到浏览器连接请求后,按行获取http请求报文,具体方法是先按单个字符原创 2021-03-09 13:45:23 · 242 阅读 · 0 评论 -
C语言:旋转数组(数组的元素右移)
题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-10原创 2020-07-09 16:45:17 · 1257 阅读 · 0 评论 -
C语言解法:数组形式的整数加法
数组形式的整数加法对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234示例 2:输入:A = [2,7,4], K = 181输出:[4,5,5]解释:274 +原创 2020-07-07 18:22:04 · 1751 阅读 · 0 评论 -
C语言:模拟实现strcmp函数的功能
模拟实现strcmp函数的功能函数原型: int strcmp(const char *s1,const char * s2)所在头文件:string.h函数功能:用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。模拟实现#include ...原创 2020-04-25 14:03:30 · 1869 阅读 · 0 评论 -
C语言:通过指针模拟实现strcat函数
模拟实现strcatstrcat函数的功能把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除dest原来末尾的“\0”)。要保证dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。说明src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串模仿实现#include <stdio.h&g...原创 2020-04-25 13:34:38 · 1528 阅读 · 2 评论 -
写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明
写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明#define offsetof(data,member)((size_t)&(((type*)0)->member))先假设结构体的首地址从0开始然后将type转换成指针指向它的成员然后取这个成员的地址然后将其转换为size_t的类型,即可求得它相对于首地址的偏移量...原创 2020-04-25 12:50:10 · 736 阅读 · 3 评论 -
写一个宏,可以将一个整数字的奇数位和偶数位交换。
写一个宏,可以将一个整数字的奇数位和偶数位交换思路奇数位和偶数位交换就是将这个数的二进制形式每隔一位相互交换一次,从第0位开始,直到最后一位。n&(0x55555555))<<1得到的二进制奇数位与n相同但偶数位均为0,再左移一位则所有奇数位变成偶数位,且所有奇数位为0;n&(0xAAAAAAAA))>>1得到的二进制偶数位与n相同但奇数位均为0...原创 2020-04-25 11:52:43 · 194 阅读 · 0 评论 -
C语言:动态实现一个通讯录,通讯录可以用来存储1000个人的信息
结构体问题描述实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定联系人信息查找指定联系人信息修改指定联系人信息显示所有联系人信息清空所有联系人以名字排序所有联系人在这里插入代码片...原创 2020-04-22 19:23:30 · 384 阅读 · 0 评论 -
C语言:编写程序在这样的矩阵中查找某个数字是否存在。
杨氏矩阵问题有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N)例如:1 2 34 5 67 8 9思路:可以将杨氏矩阵看作一个二维数组,然后将二维数组的每一个元素与目标元素进行对比。但由于要求复杂度小于O(N)所以不能够一个一个的进行比较,所以观察这个二维数组,左下角是7,这个元素是第一列最大的...原创 2020-04-20 16:58:27 · 1071 阅读 · 0 评论 -
C语言:字符串左旋
C语言:字符串左旋问题实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB方法一:将第一个字符复制一份,然后将字符串左移一位再将第一个字符赋值给最后一位,要移动k个字符就循环k次。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include<st...原创 2020-04-20 15:15:03 · 590 阅读 · 0 评论 -
C语言:字符串旋转结果
C语言:字符串旋转结果题目写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC思路:通过移动一个字符串与另一个字符串比较源码#define _CRT_SECUR...原创 2020-04-20 13:16:27 · 390 阅读 · 0 评论 -
C语言:模仿qsort的功能实现一个通用的冒泡排序
模仿qsort的功能实现一个通用的冒泡排序1. 回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。2.回调函数的实例(比大小)#define _CRT_SECUR...原创 2020-04-14 14:44:01 · 284 阅读 · 0 评论 -
C语言中关于符号问题的解析
C语言中关于符号问题的解析1.C语言中各种数据类型所占空间的大小分别为:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <stdbool.h>int main(){ printf("布尔类型:%d\n",sizeof(bool)); printf("字符型:%d\n",sizeof(ch...原创 2020-04-10 14:07:42 · 445 阅读 · 0 评论