簡體   English   中英

將char *轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM