vc问题,请高手帮忙,关于字符串转换的

2025-01-05 00:52:55
推荐回答(4个)
回答1:

首先,利用isspace(),去除字符串头、字符串尾的空格全部清除;
并且,把字符串中间的连续两个以上的空格变成一个空格;

然后,利用空格作为分隔符,把字符串分成几个子字符串;比如 中国, 123,。。。。

例如:

CString CCtrl::onDeleteSpace(CString in)
{
/*剪切 所有空白字符, 包括空格(' '),水平制表符('\t'),回车符('\r'),
走纸换行('\f'),垂直制表符('\v'),换行符('\n')*/
CString buf = in;
for(int i=0; ; i++)
{
if(i >= buf.GetLength()) break;
// if((buf.GetAt(i) == 0x20) || (buf.GetAt(i) == '\t') || (buf.GetAt(i) == '\v'))
if(iswspace(buf.GetAt(i)))
{
buf = buf.Left(i) + buf.Right(buf.GetLength() - i -1);
}
}

return buf;
}

回答2:

void GetStrings(const char *pszSrc, std::vector &vecDes)
{
vecDes.clear();
char *pszCopy = new char[strlen(pszSrc) + 1];
strcpy(pszCopy, pszSrc);

const char *pszTok = " ,.;";
char *pszTemp = strtok(pszCopy, pszTok);
while (pszTemp != NULL)
{
vecDes.push_back(pszTemp);
pszTemp = strtok(NULL, pszTok);
}

delete []pszCopy;
}

回答3:

sscanf(dst, "%s%d", s1, &a)

回答4:

~向水边林下长养圣胎亦不枉受人天供养”百伶百俐极伶俐乖巧明马梦龙《醒世恒言》第二十七卷那焦氏生得有六,