C++ char*和string互转
C++ char*和string互转
文章共352字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
在编写代码的时候直接使用char* 和"xxxx"字符串比较是否相等,判断总是错误,需要把char*转为string再作比较,即可。
char*属于<cstring>,string属于<string>。
下面我将分别介绍char*类型转化为string类型与string类型转化为char*类型
1、char* 转为 string
方法一:
char* name;
string softwareName = name;
方法二:累加法(此处没有法一简便,但是string转化为char*用这种思路更为简便)。
string softwareName="";
for (int i = 0;name[i] != '\0'; i++)
{
softwareName+=name[i];
}
string类型的字符串可通过累加的方式来添加字符的内容。
2.string 转化为 char*:
方法一:循环赋值法(最为简便)。
char* strToChar(string strSend)
{
char* ConvertData;
const int len2 = strSend.length();
ConvertData = new char[len2 + 1];
strcpy(ConvertData, strSend.c_str());
return ConvertData;
}
方法二:c_str函数法:
string sstr;
char *cstr1;
const char *cstr2;
cstr2 = sstr.c_str();
int len1, len2;
len1 = strlen(cstr1);
len2 = strlen(cstr2);
memcpy(cstr1, cstr2, (len1 > len2 ? len1 : len2));
因为c_str()函数返回的是const char*类型,所以必须要重新定义一个const char* 的字符串来接受c_str的返回值。然后再通过memcpy将const char*类型的字符串复制到char*类型的字符串。
**************************************************************************************************************
更多推荐
已为社区贡献2条内容
所有评论(0)