- 博客(25)
- 收藏
- 关注
原创 【c语言网络编程】inet_pton函数
:通过指针 `p` 访问 `data_ip` 的每个字节,并打印出来。`:调用 `inet_pton` 函数,将点分十进制的 IP 地址转换为网络字节顺序的 32 位无符号整数,并将结果存储在 `data_ip` 中。`:定义一个无符号字符型指针 `p`,指向 `data_ip` 的起始地址,以便访问 `data_ip` 的每个字节。2. `#include <arpa/inet.h>`:包含了一些网络编程相关的函数声明,比如 `inet_pton`,用于 IP 地址的转换。
2024-05-22 23:20:22
1200
原创 【c语言】判断计算机的字节序是大端还是小端
2. `unsigned char *p = (unsigned char *)#`:定义一个无符号字符型指针 `p`,并将 `num` 的地址强制转换为无符号字符型指针,这样 `p` 指向 `num` 的起始地址,且可以通过 `p` 访问 `num` 的每个字节。如果 `*p` 等于 `0x01`,说明存储在 `num` 中的最低有效字节是 `0x01`,这表明计算机是大端格式。`:定义一个无符号整型变量 `num`,并将其赋值为十六进制数 `0x01020304`,这个值占四个字节。
2024-05-22 10:30:00
480
原创 【C语言】char,short char,long char分别是多少字节,多少位,多少bit
在 C 语言中,`char`、`short`、`int`、`long` 这些数据类型的大小是平台相关的,它们的大小取决于编译器和操作系统的实现。在计算机术语中,"16位"通常指的是数据宽度,即一个数据元素在内存中占据的位数。4. `long` 类型:通常被定义为四个字节(32 比特)或者更大,即 4 字节或更大。3. `int` 类型:通常被定义为四个字节(32 比特)或者更大,即 4 字节或更大。2. `short` 类型:通常被定义为两个字节(16 比特),即 2 字节。
2024-05-21 06:00:00
848
原创 【C语言】16进制输出%x和%0x的区别
后面跟着一个数字,表示以十六进制形式输出整数,并且指定输出的宽度为指定的数字。如果输出的十六进制数位数不足指定的宽度,会在前面用零来填充。:用于以十六进制形式输出整数,不带任何宽度或填充零的设置。输出的十六进制数可能不足两位,不足时不会在前面填充零。被格式化为宽度为 4,不足 4 位时在前面用零填充,因此输出为。的区别在于是否指定了输出的宽度和是否在不足宽度时填充零。在输出宽度和填充零方面的不同效果。举个例子,假设有一个整数。而在第二个例子中,使用。在第一个例子中,使用。
2024-05-20 12:30:00
890
原创 【C语言】sspritnf(组包)和sscanf(解包)简易理解
sscanf(源数据,"%d%c%s",&目标1,&目标2,&目标3)sprintf:组包命令,将最后的值,按照中间的格式,组到目标地址中。sscanf:解包命令:将原数据中的内容,按照中间格式,解包到目标中。sprintf(&目标,"%d+%d=%s",1,2,65)
2024-04-22 23:15:08
116
原创 LINUX【网络编程】UDP程序绑定发送主机IP及端口
include <sys/socket.h> //socket函数#include <netinet/in.h> //struct sockaddr_in结构体#include <string.h> //memset strlen函数#include <arpa/inet.h> //inpton函数#include <unistd.h> //close函数//bind函数// 创建套接字,对应头文件(sys/socket.h)
2024-04-14 01:55:08
1192
2
原创 LINUX[网络编程]
#include <stdio.h>#include <sys/socket.h> //socket函数#include <unistd.h> //close函数#include <string.h> //memset strlen函数#include <netinet/in.h> //struct sockaddr_in结构体#include <arpa/inet.h> //inet_pton函数int main(int argc, char const *argv[]){ //
2024-04-13 08:30:00
705
原创 【C语言】把歌词里的播放时间跟歌词提取出来
给到一个字符串,里面包含了时间(唱该歌词的时间以及该歌词)例如“[02:16.33][04:11.44][05:11.44]我想大声宣布对你依依不舍”,如何把两者都给打印出来呢?下面给出解释。
2023-11-30 03:45:00
816
原创 【C语言】文件操作
这两天都忙,水一下,反正没人看…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
2023-11-27 03:30:00
411
原创 【C语言】链表排序(纯个人总结)不是网上那种理论派讲了半天也听不懂的
说实话,这个排序花了我很长时间去分析,也没人去教,确实比较难搞,主要是理论大家都懂,实际呢,讲细节,原理又模模糊糊的,这次我把我参悟的给发出来。
2023-11-25 00:15:00
1222
原创 【C语言】插入学生信息链表,并且自动排序(上强度)
此次属于是上强度了,键盘一次性输入n个学生信息:学号,姓名,分数。让它从小到大排序后输出。
2023-11-24 00:30:00
1761
1
原创 【C语言】做一个简单的计算器计算
x : y);// 字符指针数组// 函数指针数组while (1)printf("请输入 add 100 200:");int i = 0;for (i = 0;i < n;
2023-11-17 00:11:52
454
原创 【C语言】使用sscanf解包函数来提取字符串,解析时间对应歌词
这是一个歌词解析项目,主要是给了一个文件有字符串,设计一个函数,按照字符串给出的时间跟哥词来按照时间输出歌词,代码如下。
2023-11-16 00:21:31
338
1
原创 【C语言】使用函数strtok切割指定字符串,并挨个保存
总结来说,这段代码的目的是将原始字符串按照逗号进行切割,并将切割得到的子字符串存储在字符指针数组中。// msg_src表示待切割字符串的首地址,此处则是一整个字符串。根据代码中的打印语句,// msg_done表示被切割后的字符串,存放的首地址。函数会返回切割后的子字符串的地址,并将该地址赋给。的值会递增,这样就可以将切割得到的子字符串保存在。,这表示切割后的第一个子字符串的地址。的值就是切割得到的子字符串的个数。
2023-11-15 00:56:50
385
原创 【c语言】用strstr函数替换字符串中特定的字符
/ memset是改变从ret地址开始的三个字节的元素,改变为'#'字符串中查找第一次出现的子串 "sex",并将返回的指针赋值给。接下来,使用一个循环来不断查找并替换 "sex" 子串。函数的作用是将指定的内存区域设置为特定的值。字符串中查找下一个 "sex" 子串,并将返回的指针赋值给。表示原来的 "sex" 子串被替换为了 '#' 字符。表示只要找到了 "sex" 子串,就继续执行循环。指向的位置开始的三个字节的元素改为 '#' 字符。,即没有找到更多的 "sex" 子串,循环结束。
2023-11-13 22:49:19
3603
原创 c语言申请一个数组元素的动态内存
我们首先使用 `malloc` 分配了包含 10 个 `int` 元素的内存空间,即 `10 * sizeof(int)`。我们将返回的指针强制类型转换为 `int` 类型的指针,并将其赋给 `p2`。注意,我们使用 `*(p2 + i)` 来访问数组的元素,这是指针算术的一种形式。然后,我们检查了 `p2` 是否为 `NULL`,如果为 `NULL`,说明内存分配失败,我们打印错误信息并返回。接下来,我们使用 `scanf` 函数从用户输入中读取数组的元素,并将其存储在动态分配的数组中。
2023-11-12 23:22:48
164
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人