我有一個指向未知長度的緩衝器中的字符指針:拷貝第一n個字符到的std :: string
char* buffer;
我需要複製前N(N是輸入變量)字符以如果N!= 0,則爲std :: string。 我當前的代碼是:
int N = <something>;
std::string text;
if (N != 0)
text.assign(buffer, N);
else
text.assign(buffer);
我不喜歡的事情,就是當緩衝區的大小小於N,結果文本的大小是N.
是否有在任何功能標準庫將緩衝區的前N個字符複製到文本而不會將文本的大小強制爲N?
即如果緩衝只有1個炭和N = 100,我想要text.size()= 1
是一個定製的拷貝,逐字節,將溶液?
如果您使用C++,最好使用'std :: string'和相關的方法和運算符 –
如果您需要知道字符串的長度,我們共享Universe的物理基本定律需要掃描字符串直到找到終止的'\ 0'字節。周圍沒有捷徑。 –
@SamVarshavchik我不需要知道緩衝區的長度。我只需要複製拳頭N個字符。 – Daniele