VC中char*与cstring型的转换 50
我这两天写程序发现我如果给char*数组直接赋值如:char*bbb="bbbbbbbbb";然后cstringtmp.Format("%s",bbb);可以得到正确的值...
我这两天写程序发现我如果给char*数组直接赋值如:
char* bbb="bbbbbbbbb";然后cstringtmp.Format("%s",bbb);可以得到正确的值。但是如果我给一个char型数组赋值然后付给char*变量,就得不到正确值
如:chartmp=ch;cstringtmp.Format("%s",chartmp); 展开
char* bbb="bbbbbbbbb";然后cstringtmp.Format("%s",bbb);可以得到正确的值。但是如果我给一个char型数组赋值然后付给char*变量,就得不到正确值
如:chartmp=ch;cstringtmp.Format("%s",chartmp); 展开
展开全部
//字符串放到数组里
//buf 要存放的地方
//maxlen:存放数目的最大值
//返回值:长度
//////////////////////////////////////////////////////////////////////////
int StrToChar(CString str,char* buf,int maxlen)
{
int len = str.GetLength();
if (len > maxlen) {
len = maxlen;
}
for(int i=0;i<len;i++)
buf[i]= str[i];
if (len == maxlen) {
buf[len-1] = 0;
}
else
{
buf[len] = 0;
}
return len;
}
//////////////////////////////////////////////////////////////////////
//数组里的字符串放到CString里
//buf 存放原字符串的地方
//len 字符串的长度
//str:要搬运的地方
//////////////////////////////////////////////////////////////////////
void CharToStr(char* buf,int len,CString &str)
{
str = "";
for(int i=0;i<len;i++)
{
str+= buf[i];
}
}
//buf 要存放的地方
//maxlen:存放数目的最大值
//返回值:长度
//////////////////////////////////////////////////////////////////////////
int StrToChar(CString str,char* buf,int maxlen)
{
int len = str.GetLength();
if (len > maxlen) {
len = maxlen;
}
for(int i=0;i<len;i++)
buf[i]= str[i];
if (len == maxlen) {
buf[len-1] = 0;
}
else
{
buf[len] = 0;
}
return len;
}
//////////////////////////////////////////////////////////////////////
//数组里的字符串放到CString里
//buf 存放原字符串的地方
//len 字符串的长度
//str:要搬运的地方
//////////////////////////////////////////////////////////////////////
void CharToStr(char* buf,int len,CString &str)
{
str = "";
for(int i=0;i<len;i++)
{
str+= buf[i];
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我调试了下,没什么问题啊
char* ch="bbbbbbbbb";
char* chartmp;
CString cstringtmp;
chartmp=ch;
cstringtmp.Format("%s",chartmp);
char* ch="bbbbbbbbb";
char* chartmp;
CString cstringtmp;
chartmp=ch;
cstringtmp.Format("%s",chartmp);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char chr[100];
CString str = "wwwwwwwww";
char* pchar = NULL;
//赋值代码如下:
memset(chr,0,100);
memcpy(chr,str.GetBuffer(str.GetLength()),str.GetLength());
pchar = chr;
//试下
CString str = "wwwwwwwww";
char* pchar = NULL;
//赋值代码如下:
memset(chr,0,100);
memcpy(chr,str.GetBuffer(str.GetLength()),str.GetLength());
pchar = chr;
//试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
http://hi.baidu.com/luosiyong/blog/item/2a84edc8c8db93117f3e6fd6.html
看看这里你一定就明白了,char CString 和 string相互的转换都有。
建议用sprintf,而不建议用Format
看看这里你一定就明白了,char CString 和 string相互的转换都有。
建议用sprintf,而不建议用Format
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询