如果我將“\ 0”字符存盤在某個位置,如何將 char 欄位轉換為字串。例如,如果我有“ab\0bb”,a.lenght() 命令將顯示我只存盤了兩個字符
string getString(char *str, int len)
{
str[len] = '\0';
string strBuffer = string(str);
cout << strBuffer.length() << endl;
return strBuffer;
}
uj5u.com熱心網友回復:
如評論中所述,std::string(我將假設string并且問題所指)具有一個建構式,該建構式采用長度并允許空字符:
string getString(char *str, int len)
{
return {str, len};
}
或者如果你想明確(避免與初始化串列建構式混淆)
string getString(char *str, int len)
{
return string(str, len);
}
str引數可能也應該有 type ,const char*not char*,并且 type oflen應該可能是std::size_t。并且可能string也應該被限定,std::string而不是使用using namespace std;or using std::string;(取決于背景關系)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/468105.html
下一篇:查找字串結尾的最快方法
