Получить байты из std :: string в C++

std::string::data может показаться достаточным string и наиболее эффективным. Если c++ вы хотите иметь неконстантную string память для манипулирования c++ (странно для шифрования), вы c++ можете скопировать данные strings в буфер, используя memcpy:

unsigned char buffer[mystring.length()];
memcpy(buffer, mystring.data(), mystring.length());

Фанаты cpp STL посоветуют вам использовать c++ вместо него std::copy:

std::copy(mystring.begin(), mystring.end(), buffer);

но в этом нет strings ничего хорошего. Если вам string-manipulation нужно нулевое завершение, используйте cxx std::string::c_str() и различные методы дублирования c++ строк, которые предоставили cpp другие, но я бы обычно избегал string-manipulation этого и просто запрашивал cpp length. В частности, в случае с string криптографией вы просто знаете, что c++ кто-то попытается взломать string-manipulation его, вставив в него нули, а string-manipulation использование std::string::data() отпугивает str вас от ленивых предположений cpp о базовых битах в строке.

c++

string

2022-11-10T01:07:04+00:00