- 博客(111)
- 收藏
- 关注
原创 strtoull函数使用详解
摘要:strtoull是C/C++标准库函数,用于将字符串转换为无符号长长整型(unsigned long long)。该函数原型包含三个参数:要转换的字符串、指向无效字符的指针和进制基数(2-36)。文章详细介绍了其基本用法、错误处理方式,以及如何利用endptr继续解析字符串。同时提供了配置文件解析、处理大数字输入等实际应用场景,并强调了前导空格处理、溢出检测、负号处理等注意事项。在C++中建议使用<cstdlib>头文件,并推荐进行严格的错误检查,特别是处理用户输入时。
2025-12-01 14:29:44
247
原创 freeRTOS系统中,执行一个4小时的单次定时任务
FreeRTOS实现4小时单次定时执行有三种主要方法:1.推荐使用xTimerCreate创建单次软件定时器,自动处理时间管理且可靠性高;2.通过vTaskDelay结合任务实现,适合简单场景;3.采用系统时钟计数方式,需手动处理计时检查。
2025-10-22 16:26:46
310
原创 strchr与strrchr函数使用
摘要:strrchr和strchr是C语言中用于字符串字符查找的函数。strrchr从后向前查找字符的最后一次出现位置,返回指向该位置的指针;strchr从前向后查找字符的第一次出现位置。两者原型相同,但搜索方向不同:strrchr为反向查找(reverse),strchr为正向查找。选择依据取决于需求,如提取文件名用strrchr找最后的分隔符,解析路径时用strchr找第一个分隔符。两个函数都需包含<string.h>头文件,未找到字符时返回NULL。
2025-10-15 10:47:36
495
原创 C语言strtol 函数使用方法
strtol 是 C 语言中用于字符串转长整型的函数,其原型为 long strtol(const char *str, char **endptr, int base)。
2025-09-05 15:28:49
931
原创 C语言限制字符串长度方法
输出时:用%.Ns或%.*s(动态长度)限制输出的字符数。输入时:用%Ns限制scanf读取的字符数,或直接用fgets。安全性:始终确保字符串操作不会导致缓冲区溢出。
2025-08-05 17:57:51
550
原创 BCD格式解析及C语言实现
BCD(Binary-Coded Decimal,二进制编码的十进制)是一种用二进制编码表示十进制数字的方法。下面我将详细解析BCD格式及其在C语言中的实现。
2025-07-31 11:30:19
592
原创 使用 strtok 函数在 C 语言中分割字符串
strtok是C语言中用于字符串分割的标准库函数,通过指定分隔符将字符串拆分为多个子串。它会修改原始字符串,在每个分隔符处插入'\0'。
2025-07-18 16:08:29
327
原创 strstr、strrchr、strchr 函数的区别
C语言标准库<string.h>中的三个字符串查找函数:1.strchr查找字符首次出现位置;2.strrchr查找字符最后一次出现位置;3.strstr查找子字符串首次出现位置。三者都区分大小写且要求字符串以'\0'结尾,区别在于搜索内容和方向:strchr和strrchr搜索单个字符(正向/反向),strstr搜索子字符串(正向)
2025-07-15 09:38:36
299
原创 串口字符串提取JSON并保存-问题记录
将串口收到的字符串中: CONNECT {"code":200,"msg":"Success","data":{"app":null,"sys":null,"mcu":{"url":"https://www.naxeontech.cn/pub/N1_TBOX_GD32F415_RTOS.bin","version":"1.1.1","size":91528,"mark":"N1测试","type":2}}} OK。
2025-07-10 10:04:37
287
原创 cJSON数组操作函数使用指南
摘要:cJSON库提供了数组处理函数cJSON_GetArraySize和cJSON_GetArrayItem。前者获取数组元素数量(非数组返回0),后者获取指定索引元素(索引越界返回NULL)。使用时需确保参数为有效数组对象,索引从0开始,注意内存释放和空指针检查。示例展示了如何解析JSON数组并遍历元素,包括处理嵌套数组的情况。典型应用场景包括解析配置文件、API响应等结构化数据。(150字)
2025-07-09 17:11:06
598
原创 http中GET和POST、PUT之间的区别
通过请求体(Body)传递,支持多种格式(如JSON、表单),长度无限制。POST用于创建(如新增用户),PUT用于更新(如替换用户全部信息)。:如需部分更新资源(非完整替换),应使用PATCH方法。:否(多次提交可能产生不同结果,如重复创建订单)。(查询数据),不应修改服务器状态。(替换整个资源,需提供所有字段)。:通过请求体传递(类似POST)。:安全(仅读取,不修改数据)。:是(多次执行结果相同)。:是(多次更新结果一致)。)传递,可见且长度受限。(创建资源或触发处理)。:不安全(会修改数据)。
2025-06-17 15:20:01
836
原创 C语言宏定义中的令牌粘贴运算符
C语言宏定义中的##运算符用于连接符号,如s_Buffer_##vname可将前缀与参数vname组合成新变量名(如s_Buffer_myBuf)。这种技巧能确保变量名唯一性,避免命名冲突,并表明变量间的关联关系。在静态缓冲区声明宏中,它动态生成与参数相关的数组名(如vname=myBuf生成s_Buffer_myBuf),是宏编程中创建唯一标识符的常用方法。
2025-06-17 14:26:23
294
原创 trnstr函数功能及头文件介绍
strnstr是一个用于在字符串中查找子字符串的函数,类似于strstr,但它限制了搜索的长度,提供了一定的安全性。
2025-06-17 11:43:24
369
原创 C语言十六进制转ASCII方法
将每两个十六进制字符组合成一个字节将这个字节转换为对应的ASCII字符:由于 ASCII 字符本身就是用 8 位二进制(或十六进制)表示的,可以直接将buf中的值作为 ASCII 码,转换为对应的字符。
2025-06-16 14:30:32
994
原创 Notepad++如何列选
Notepad++列模式操作指南:提供三种方法进行垂直文本选择:(1)Alt+鼠标拖动(2)Alt+Shift+方向键(3)菜单栏开启列模式。选中后支持复制、删除、修改等操作。
2025-06-12 15:40:45
2549
原创 FreeRTOS任务挂起与恢复
FreeRTOS中任务控制的核心操作:挂起(Suspend)和恢复(Resume)。通过vTaskSuspend()可暂停指定任务,而vTaskResume()能重启被挂起的任务。特别说明在中断服务程序(ISR)中须使用xTaskResumeFromISR()进行任务恢复。
2025-06-10 09:38:18
413
原创 C语言实现绝对值差值函数
在C语言中,可以编写一个函数来计算两个数的差值的绝对值。三种方法都能正确计算两个整数的差值的绝对值,你可以根据需要选择其中一种。方法2通过if-else语句手动计算绝对值。方法3使用条件运算符(三元运算符)简化代码。方法1使用了标准库中的。
2025-06-06 15:36:53
314
原创 C语言拼接4字节数据为uint32_t
将4个字节数据拼接成一个uint32_t可以使用位操作(位移和按位或)来实现。假设你有4个字节abcd(类型为uint8_t),你可以按照大端序(Big-Endian)或小端序(Little-Endian)的方式拼接。
2025-05-23 15:18:53
726
原创 串口DTR信号作用与应用解析
数据终端就绪)是RS-232标准中的一个控制信号,主要用于串行通信中表示设备的就绪状态。:RTS(Request to Send)用于请求发送数据,而DTR表示全局就绪状态。:与DCE设备的DSR(Data Set Ready)配合,实现双向就绪检查。:在USB转串口适配器中,DTR可能被映射为控制功能(如复位MCU)。:终端程序(如PuTTY)可手动控制DTR信号,或依赖它检测连接状态。:若设备未使用DTR但信号被激活,可能导致意外行为(如误复位)。(公头)/ Pin 6(母头,部分设备可能不同)。
2025-05-20 10:42:10
811
原创 结构体内存对齐规则与优化
内存对齐是计算机系统中一种重要的内存管理机制,它要求数据在内存中的地址必须是某个值(通常是2、4、8等2的幂次方)的倍数。
2025-05-06 14:54:05
491
原创 C语言位域与结构体打包技术
位域和结构体打包技术可以有效地减少内存使用,特别适用于嵌入式系统或需要与硬件/网络协议交互的场景。但使用时需要注意潜在的性能影响和可移植性问题。
2025-05-06 10:33:36
476
原创 C语言实现卡ID启用排序
根据bindflag的高七位比特位来对userCardId数组进行重新排序,使得启用的卡 ID 排在前面,禁用的卡 ID 排在后面,并更新。
2025-04-28 15:38:28
198
原创 C语言实现卡ID删除与排序
根据bindflag的高七位 bit 来管理userCardId数组中卡 ID 的启用/禁用状态删除指定的卡 ID 后,需要重新排序数组,将有效的卡 ID 移到数组前面更新为当前有效的卡数更新bindflag使其高七位 bit 与新排序后的卡 ID 状态对应。
2025-04-28 14:22:09
244
原创 memcpy 使用指南 (C语言)
memcpy是 C 语言标准库中的一个重要函数,用于在内存区域之间复制数据。它是<string.h>头文件中定义的高效内存操作函数之一。
2025-04-27 14:25:39
504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅