如何将u_char*赋值给一个string变量

stringsTemp;u_charcTemp[10]="lsjdflsjdf";现要将sTemp等于cTemp,将cTemp强制转换成(u_char*)后编译可以通过,... string sTemp;
u_char cTemp[10] = "lsjdflsjdf";
现要将sTemp等于cTemp,将cTemp强制转换成(u_char *)后编译可以通过,但sTemp还是没有值,编译环境VC++6.0.
不知道是逻辑错误还是其他什么问题,望大家帮忙解决.
我按你的方法使用sTemp = string((char *)cTemp);但sTemp没有被赋值
展开
 我来答
不破_楼兰
推荐于2016-03-22 · TA获得超过2231个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:294万
展开全部
#include "iostream"
#include <string>
#include <winsock.h>
using namespace std;

void main()
{
string sTemp;
u_char cTemp[11] = "lsjdflsjdf"; // 若用cTemp[10]溢出了
sTemp = (char *)cTemp;
cout << sTemp << endl;
}

这样能够正常输出,如果你的sTemp还没值,我觉得可能是楼主的编译器的问题了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-06-18
展开全部
将u_char*赋值给一个string变量;
char *s = "123";
string str(s);//也可以利用拷贝构造函数初始化
具体参考实例如下:
#include <stdio.h>
#include <string>
using namespace std;
int main(int argc, char** argv)
{
char szStr[6] = "hello";
string str = szStr;
printf("%s\n", szStr);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yellow916
2009-05-13 · TA获得超过127个赞
知道答主
回答量:77
采纳率:0%
帮助的人:0
展开全部
刚打错了,那个是我重载过的,直接强制转换就行
sTemp = (string)cTemp;

被赋值了,没问题的。你可以用printf("%c%c%c\n",sTemp[0],sTemp[1],sTemp[2]);去看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2009-05-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
会不会是因为字符串的结束符没法放在cTemp[10]内,破坏了数据结构
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2009-05-13 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3742万
展开全部
#include<string>
#include<iostream>
using namespace std;

typedef unsigned char u_char;

void main()
{
string sTemp;
u_char cTemp[20] = "lsjdflsjdf";

sTemp = string((char*)cTemp);

cout <<sTemp<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式