在编写代码的时候直接使用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*类型的字符串。

**************************************************************************************************************

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐