字符数组为字符串并复制字符



如果我将' 0'字符存储在某些位置,我如何将字符字段转换为字符串。例如,如果我有"ab 0bb", a.l ight()命令将显示我只存储了两个字符

string getString(char *str, int len)
{
str[len] = '';
string strBuffer = string(str);
cout << strBuffer.length() << endl;
return strBuffer;
}

正如在评论中提到的,std::string(我将假设string和问题所指的是)有一个构造函数接受长度并允许空字符:

string getString(char *str, int len)
{
return {str, len};
}

或者如果你想要显式的(避免与初始化列表构造函数混淆)

string getString(char *str, int len)
{
return string(str, len);
}

str参数的类型也可能是const char*,而不是char*,len的类型可能是std::size_t。可能string也应该被限定为std::string,而不是使用using namespace std;using std::string;(取决于上下文)。

最新更新