一个简单的字符串截取问题????
char* CMy2Dlg::AllTrim(char *pszStr)
{
if (pszStr == NULL )
{
ASSERT(FALSE);
return NULL;
}
int i = 0 ;
while(pszStr[i] == ' ') i++;
if(i > 0) strcpy(pszStr ,pszStr+i);
i = (int)strlen(pszStr) ;
while(i > 0 && pszStr[--i] == ' ')
pszStr[i] = 0 ;
return pszStr;
}
void CMy2Dlg::GetDataField(char *pszBuf, char *pszDataBuf, int nSize)
{
if (pszBuf == NULL || pszDataBuf == NULL || nSize <= 0) return ;
memset(pszDataBuf,'\0',nSize);
AllTrim(pszBuf);
strncpy(pszDataBuf,pszBuf,nSize);
return ;
}
void CMy2Dlg::OnOK()
{
// TODO: Add extra validation here
char pbuf[40]="10042004560215 11 ";
char pdatabuf[31]="";
GetDataField(pbuf,pdatabuf,sizeof(pdatabuf));
GetDataField(pbuf,pdatabuf,sizeof(pdatabuf));
AfxMessageBox(pdatabuf);
CDialog::OnOK();
}
这是一个测试程序,,为什么截取的不对呀。。是要截取前30个字符。。
大家给看看。