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);
展开
 我来答
gis19831203
2009-07-13 · TA获得超过690个赞
知道小有建树答主
回答量:914
采纳率:0%
帮助的人:837万
展开全部
没太明白你的意思,如果仅仅只是要在char* 和CString之间转换的话,那么异常简单,这样做:
char buf[256]="abcdefg";
CString str;

str = buf;//char* 转 CString
strcpy(buf, str);//CString 转 char*,因为CString重载了const char*操作符,所以这个操作可以正确运行。
blackscreen
2009-07-13 · TA获得超过459个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:662万
展开全部
//字符串放到数组里
//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];
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1e9aeb57c
2009-07-14 · 超过10用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:0
展开全部
我调试了下,没什么问题啊
char* ch="bbbbbbbbb";
char* chartmp;
CString cstringtmp;
chartmp=ch;
cstringtmp.Format("%s",chartmp);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lz3272
2009-07-13 · TA获得超过333个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:354万
展开全部
char chr[100];
CString str = "wwwwwwwww";
char* pchar = NULL;
//赋值代码如下:
memset(chr,0,100);
memcpy(chr,str.GetBuffer(str.GetLength()),str.GetLength());
pchar = chr;

//试下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luosiyong
2009-07-13 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1627万
展开全部
http://hi.baidu.com/luosiyong/blog/item/2a84edc8c8db93117f3e6fd6.html
看看这里你一定就明白了,char CString 和 string相互的转换都有。
建议用sprintf,而不建议用Format
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式