[英]Conversion of char * to string
有沒有人知道如何將char *轉換為字符串。 實際上,我有一個函數,它返回值為char *,現在我需要存儲/復制std :: string。 我嘗試過類似的東西
char *sResult = (char*)malloc(1024); std:string line; line= line+ sResult
謝謝,問候,山姆
怎么樣
std::string line(szResult);
有一個從const char*
到std::string
的隱式轉換 (通過非顯式構造函數)。 所以以下都可以工作(假設ch是const char*
或char*
)
std::string s (ch);
std::string s = ch;
s = ch;
f(ch); //where f is declared to take std::string
etc
std :: string類有一個帶有const char *
的構造const char *
所以你可以這樣做
char *foo;
/* .... initialize foo ... */
std::string some_string(foo);
std:string line; line.append(sResult); 或std :: string line(sResult);
如果您有一行不一定是C字符串的數據,則使用字符串的構造函數
std::string s(sResult, sSize);
試試這個: char* ptrToString = "wharever"; std::string szMyStdString = ptrToStrin
char* ptrToString = "wharever"; std::string szMyStdString = ptrToStrin
g
首先,您需要為范圍說明符鍵入冒號,如下所示:
std :: string line;
然后根據您使用+運算符的C庫,可能不會重載以處理char * string,因此您應該更好地使用:
line = line + std :: string(sResult) ;
雖然您的實現,如果您修復了范圍說明符,應該可以在全功能的c ++標准庫實現中使用,例如ms或gcc。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.