首先看一下有关百度百科:
strncpy函数用于将指定长度的字符串复制到字符数组中,是 C语言的库函数之一,来自 C语言标准库,定义于 string.h。语法形式为:char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest. 该函数主要使用在字符串提取中:
dest:表示复制的目标字符数组;
src:表示复制的源字符数组;
n:表示复制的字符串长度。
{"Status":0,"Msgs":null,"data":"F3KA9T"}
char *Mystr=NULL;
UINT8 i=0;
UINT32 cnt=0;
UINT8 sub[16];
Mystr=strstr(pBuffer,"data");
cnt=strlen(Mystr);
strncpy(sub,Mystr+7,(cnt-7-2));
sub[cntt-7-2]='\0';
printf("sub=%s\n",sub);
sub=F3KA9T
pBuffer里面的值就是{“Status”:0,“Msgs”:null,“data”:“F3KA9T”},这只是我原来代码里面的一小段,就不全贴出来献丑了。
可以提取字符串任意位置的子字符串或者字符,需要注意的是,提取的子字符串并不包括结束符’\0’,需要自己手动添加,不然最后提取的结果末尾可能会多出一些字符。
注意dest大小问题,小心内存问题