簡體   English   中英

C ++將未終止的char *連接到std :: string

[英]C++ concatenating an unterminated char* to std::string

未終止的 char *轉換為std :: string的好方法是什么? 例如,完成以下操作后,

int bytes = recv(_socket, &_recv_buffer, recv_buffer_len, 0)

我有接收緩沖區的地址及其包含的字節數,我想將其連接到std :: string (FWIW,我不使用多字節字符集。)后備方法是使_recv_bufferrecv_buffer_len大一個字節,並設置_recv_buffer [bytes] ='\\ 0' ,但是我想知道是否有一種更寬松的方法。

std::string有一個append方法,該方法同時使用指向字符串的指針和長度:

string& append (const char* s, size_t n);

為了你:

myString.append(_recv_buffer, bytes);

編者注:請注意以_開頭的標識符。 它們保留供實現使用。

使用str.append(recv_buffer, bytes); 這應該可以解決問題。

std::string data(&_recv_buffer, &_recv_buffer + bytes);

您確定&_recv_buffer嗎? 如果您的緩沖區是char[]或類似名稱,則必須為_recv_buffer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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