📄 stringextapi.c
字号:
//*----------------------------------------------------------------------------
//* 文件名 : stringExtAPI.c
//* 功能描述 : 字符串扩展函数库
//* 作者 : 龙一
//* 版本 : 1.0
//* 建立日期、时间 : 2006/01/10 12:03
//* 最近修改日期、时间 :
//* 修改原因 :
//*----------------------------------------------------------------------------
//*------------------------------ include file --------------------------------
#include "/uCOS-II/ucos_ii.h"
#include "stringExtAPI.h"
//*----------------------------------------------------------------------------
//* 函数名称 : strcatExt
//* 功能描述 : strcat标准库函数的扩充函数
//* 入口参数 : <pbDest>[out] 指向接收内存的指针
//* : <u32DestLen>[in] 为了避免内存泄漏,该函数需要在追加之前判断接
//* : 收缓冲区的长度
//* : <pbSrc>[in] 指向被追加内容的指针
//* : <u32SrcLen>[in] 被追加内容的长度
//* 出口参数 : 被追加的最后位置
//*----------------------------------------------------------------------------
INT8S *strcatExt(INT8S *pbDest, INT32U u32DestLen, const INT8S *pbSrc, INT32U u32SrcLen)
{
INT8S *__pbStartAddr;
INT8S *__pbEndAddr;
INT32S i;
//* 首先找到被追加的开始地址,如果结束地址已经到了接收缓冲区的尾部则不再追加
__pbStartAddr = pbDest + strlenExt(pbDest);
__pbEndAddr = pbDest + u32DestLen;
i = 0;
while((__pbStartAddr + i) < __pbEndAddr && i < u32SrcLen)
{
*(__pbStartAddr + i) = *(pbSrc + i);
i++;
}
return pbDest;
}
//*----------------------------------------------------------------------------
//* 函数名称 : strlenExt
//* 功能描述 : strlenExt标准库函数的扩充函数
//* 入口参数 : <pbSrc>[in] 指向被计算的字符串的指针
//* 出口参数 : 字符串长度
//*----------------------------------------------------------------------------
INT32S strlenExt(const INT8S *pbSrc)
{
INT32S i = 0;
const INT8S *__pbNext = pbSrc;
while(*(__pbNext+i) != 0x00)
i++;
return i;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -