16,551
社区成员
发帖
与我相关
我的任务
分享typedef struct Test
{
char seqID[10];
char mobile[10];
}TEST;
//////////////////////////////
TEST test;
char bufRecv[4096] = "return=0;count=7;seqID=1328311111111653,mobile=1358438820011-16,Content";
char bufReceipt[512];
LPCTSTR pSeqID,pMobile,pContent,pTime;
if (pSeqID = strstr(bufRecv, "seqID="))
{
pSeqID += strlen("seqID=");
if (pMobile = strstr(pSeqID, ",mobile="))
{
if (pContent = strstr(pMobile, ",Content"))
{
pMobile += strlen(",mobile=");
int nSeqIDLen = pMobile-pSeqID -strlen(",mobile=");
nSeqIDLen = nSeqIDLen>10?10:nSeqIDLen; //由于结构体接收的空间为10
//所以数据过长则截取前10个字符
memcpy(test.seqID, pSeqID, nSeqIDLen);
test.seqID[nSeqIDLen] = 0;
int nMobileLen = pContent-pMobile-strlen(",content=");
nMobileLen = nMobileLen>10?10:nMobileLen;
memcpy(test.mobile, pMobile, nMobileLen);
test.mobile[nMobileLen] = 0;
}
}
}
//在memcpy(, pMobile, nMobileLen);之前初始化一下
memset(&test, 0x00, sizeof(test));
int nMobileLen = pContent-pMobile;
nMobileLen = nMobileLen>10?10:nMobileLen;
memcpy(test.mobile, pMobile, nMobileLen);///////问题在这 但是这儿复制怎么会影响test.seqID的值呢?
test.mobile[nMobileLen] = 0;typedef struct Test
{
char seqID[10];
char mobile[10];
}TEST;
//////////////////////////////
TEST test;
char bufRecv[4096] = "return=0;count=7;seqID=1328311111111653,mobile=1358438820011-16,Content";
char bufReceipt[512];
LPCTSTR pSeqID,pMobile,pContent,pTime;
if (pSeqID = strstr(bufRecv, "seqID="))
{
pSeqID += strlen("seqID=");
if (pMobile = strstr(pSeqID, ",mobile="))
{
if (pContent = strstr(pMobile, ",Content"))
{
pMobile += strlen(",mobile=");
int nSeqIDLen = pMobile-pSeqID -strlen(",mobile=");
nSeqIDLen = nSeqIDLen>10?10:nSeqIDLen; //由于结构体接收的空间为10
//所以数据过长则截取前10个字符
memcpy(test.seqID, pSeqID, nSeqIDLen);
test.seqID[nSeqIDLen] = 0;
int nMobileLen = pContent-pMobile;
nMobileLen = nMobileLen>10?10:nMobileLen;
memcpy(test.mobile, pMobile, nMobileLen);
test.mobile[nMobileLen] = 0;
}
}
}