根据要求here我写了这篇文章:
我试图从std::string* to *char*
复制数据。我正在使用C ++。
我的方法是转换std:string* to *char*
然后复制数据。但是我得到了错误的结果。
这部分数据要复制:
我的代码如下:
CryptoPP::StreamTransformationFilter stfEncryptor(cbcEncryption, new CryptoPP::StringSink( ciphertext ) );
stfEncryptor.Put( reinterpret_cast<const unsigned char*>( plaintext.c_str() ), plaintext.length() + 1 );
stfEncryptor.MessageEnd();
cout << "cipher text plain ("<<ciphertext.size() <<" bytes): " <<std::endl<< std::endl ;
std::cout<< ciphertext <<std::endl <<std::endl<<std::endl ;
d.body = new char[300];
my_strcpy(d.body,ciphertext.c_str(),300);
std::cout << "Cipher Text length after copy(" << strlen(d.body) << " bytes): " << std::endl<< std::endl;
std::cout << d.body << std::endl<<std::endl;
这是我的功能&#34; my_strcpy&#34; :
char* my_strcpy( char* arr_out, char* arr_in, int bloc )
{
char* pc= arr_out;
for(size_t i=0;i<bloc;++i)
{
*arr_out++ = *arr_in++ ;
}
*arr_out = '\0';
return pc;
}
你能告诉我这里有什么问题吗?
结果不如预期!