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

来源:百度知道 编辑:UC知道 时间:2024/09/18 04:18:39
string sTemp;
u_char cTemp[10] = "lsjdflsjdf";
现要将sTemp等于cTemp,将cTemp强制转换成(u_char *)后编译可以通过,但sTemp还是没有值,编译环境VC++6.0.
不知道是逻辑错误还是其他什么问题,望大家帮忙解决.
我按你的方法使用sTemp = string((char *)cTemp);但sTemp没有被赋值

将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;
}

#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还没值,我觉得可能是楼主的编译器的问题了

会不会是因为字符串的结束符没法放在cTemp[10]内,破坏了数据结构

#include<string>
#include<iostream>
using namespace std;

typedef unsigned char u_char;

void main()
{
string sTemp;
u_char cTe