求救 C语言类型转换

sdai_dn 2010-03-04 07:37:41
我定义了一个
unsigned short * url=STATURL.pwcsUrl;
char strurl[256];
想把url转换为char类型,就是sprintf(strurl,"%s",url);
为什么转换后就不对,只是出现一个第一个字符,这是为什么啊?
怎么解决啊?
...全文
104 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
stardust20 2010-03-05
  • 打赏
  • 举报
回复
Mark.………学习了…
liangshixue 2010-03-05
  • 打赏
  • 举报
回复
结构体??


学习啦
风中追梦郎 2010-03-05
  • 打赏
  • 举报
回复
学习了。


char
rome55 2010-03-05
  • 打赏
  • 举报
回复
试试 (char) 。。。。
cy330206 2010-03-04
  • 打赏
  • 举报
回复
STATURL.pwcsUrl;
楼主这个是怎么定义的??不懂
白云飘飘飘 2010-03-04
  • 打赏
  • 举报
回复
呵呵,错了,用WideCharToMultiByte
pengzhixi 2010-03-04
  • 打赏
  • 举报
回复
引用 5 楼 lhcwjy 的回复:
STATURL.pwcsUrl中的字符串是Unicode编码的,而这个串的第一个字符是字母一类的,比如a的Unicode编码是0x0061.在内存中就是 61 00.所以你只能得到第一个字符。由于你的目标串是char,即使copy成功了也是乱码。用MultiByteToWidChar做一下转换吧。


这个我觉得靠谱
白云飘飘飘 2010-03-04
  • 打赏
  • 举报
回复
STATURL.pwcsUrl中的字符串是Unicode编码的,而这个串的第一个字符是字母一类的,比如a的Unicode编码是0x0061.在内存中就是 61 00.所以你只能得到第一个字符。由于你的目标串是char,即使copy成功了也是乱码。用MultiByteToWidChar做一下转换吧。
musiclee 2010-03-04
  • 打赏
  • 举报
回复
unsigned short * url=&STATURL.pwcsUrl;
试下
harizu76 2010-03-04
  • 打赏
  • 举报
回复
那个是指针。指向首地址数据了
xboy 2010-03-04
  • 打赏
  • 举报
回复
sprintf(strurl,"%s",(char *)url);

sprintf函数是不会管你传入的是什么东西的,别期望他在编译期间把url按 "%s"去做转换。

要知道下面的语句是合法的:
sprintf(strurl,"%s",100);

你会觉得100可以强制转换成字符串么
最帅马老师 2010-03-04
  • 打赏
  • 举报
回复
这样只是将头指针转换了,将指针类型转换成char*试试

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧