VC 里 Cstring 转char* 的问题,转出来的字符串,一个字符隔一个空格,认该怎么消掉?

2025-01-05 03:47:35
推荐回答(3个)
回答1:

/************************************************************************
功能 :把Cstring转换为Char类型
参数IN :Cstring str需要转换的str
参数OUT :char ch 输出的结果
************************************************************************/
void CznhygjDlg::CString2Char(CString str, char ch[])
{
int i;
char *tmpch;
int wLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);//得到Char的长度
tmpch = new char[wLen + 1]; //分配变量的地址大小
WideCharToMultiByte(CP_ACP, 0, str, -1, tmpch, wLen, NULL, NULL); //将CString转换成char*

for(i = 0; tmpch[i] != '\0'; i++) ch[i] = tmpch[i];
ch[i] = '\0';
delete tmpch;
}

回答2:

这个我也遇到了,没查到什么结果。我就直接for循环吧不是空格的字符重新赋到新的字符数组中。但源字符串如果有汉字就不行了。

回答3:

UNICODE下是w_char,用char显然不对