文章目录
一、源代码说明
freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。
本文介绍的是freecplus框架的字符串操作函数和类。
函数和类的声明文件是freecplus/_freecplus.h。
函数和类的定义文件是freecplus/_freecplus.cpp。
示例程序位于freecplus/demo目录中。
编译规则文件是freecplus/demo/makefile。
二、字符串复制
1、STRCPY函数
安全的strcpy函数。
函数声明:
char *STRCPY(char* dest,const size_t destlen,const char* src);
参数说明:
dest:目标字符串,不需要初始化,在STRCPY函数中有初始化代码。
destlen:目标字符串dest占用内存的大小。
src:原字符串。
返回值:目标字符串dest的地址。
示例(demo1.cpp)
/*
* 程序名:demo1.cpp,此程序演示freecplus框架中STRCPY函数的使用。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include "_freecplus.h"
int main()
{
char str[11]; // 字符串str的大小是11字节。
STRCPY(str,sizeof(str),"freecplus"); // 待复制的内容没有超过str可以存放字符串的大小。
printf("str=%s=\n",str); // 出输结果是str=freecplus=
STRCPY(str,sizeof(str),"www.freecplus.net"); // 待复制的内容超过了str可以存放字符串的大小。
printf("str=%s=\n",str); // 出输结果是str=www.freecp=
}
2、STRNCPY函数
安全的strncpy函数。
函数声明:
char *STRNCPY(char* dest,const size_t destlen,const char* src,size_t n);
参数说明:
dest:目标字符串,不需要初始化,在STRNCPY函数中有初始化代码。
destlen:目标字符串dest占用内存的大小。
src:原字符串。
n:待复制的字节数。
返回值:目标字符串dest的地址。
示例(demo2.cpp)
/*
* 程序名:demo2.cpp,此程序演示freecplus框架中STRNCPY函数的使用。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include "_freecplus.h"
int main()
{
char str[11]; // 字符串str的大小是11字节。
STRNCPY(str,sizeof(str),"freecplus",5); // 待复制的内容没有超过str可以存放字符串的大小。
printf("str=%s=\n",str); // 出输结果是str=freec=
STRNCPY(str,sizeof(str),"www.freecplus.net",8); // 待复制的内容没有超过str可以存放字符串的大小。
printf("str=%s=\n",str); // 出输结果是str=www.free=
STRNCPY(str,sizeof(str),"www.freecplus.net",17); // 待复制的内容超过了str可以存放字符串的大小。
printf("str=%s=\n",str); // 出输结果是str=www.freecp=
}
三、字符串拼接
1、STRCAT函数
安全的strcat函数。
函数声明:
char *STRCAT(char* dest,const size_t destlen,const char* src);
参数说明:
dest:目标字符串,注意,如果dest从未使过,那么需要至少一次初始化。
destlen:目标字符串dest占用内存的大小。
src:待追加字符串。
返回值:目标字符串dest的地址。
示例(demo4.cpp)
/*
* 程序名:demo4.cpp,此程序演示freecplus框架中STRCAT函数的使用。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include "../_freecplus.h"
int main()
{
char str[11]; // 字符串str的大小是11字节。
STRCPY(str,sizeof(str),"www");
STRCAT(str,sizeof(str),".fr"); // str原有的内容加上待追加的内容没有超过str可以存放的大小。
printf("str=%s=\n",str); // 出输结果是str=www.fr=
STRCAT(str,sizeof(str),"eecplus.net"); // str原有的内容加上待追加的内容超过了str可以存放的大小。
printf("str=%s=\n",str); // 出输结果是str=www.freecp=
}
2、STRNCAT函数
安全的strncat函数。
函数声明:
char *STRNCAT(char* dest,const size_t destlen,const char* src,size_t n)
参数说明:
dest:目标字符串,注意,如果dest从未使过,那么需要至少一次初始化。
destlen:目标字符串dest占用内存的大小。
src:待追加字符串。
n:待追加的字节数。
返回值:目标字符串dest的地址。
示例(demo5.cpp)
/*
* 程序名:demo5.cpp,此程序演示freecplus框架中STRNCAT函数的使用。
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include "../_freecplus.h"
int main()
{
char str[11]; // 字符串str的大小是11字节。
STRCPY(str,sizeof(str),"www");
STRNCAT(str,sizeof(str),".free",10); // str原有的内容加上待追加的内容没有超过str可以存放的大小。
printf("str=%s=\n",str); // 出输结果是str=www.free=
STRCPY(str,sizeof(str),"www");
STRNCAT