⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringextapi.c

📁 《嵌入式网络系统设计-基于Atmel ARM7 系列》这个本书的光盘资料
💻 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 + -