2012-07-02 30 views
0

好吧,所以我正在使用C++的内存编辑器,我有一个偏移量列表,如果我预先定义了如何更改偏移量(0x68),那么它可以工作,但我想知道是否有一种方法来转换字符串,如在cin >> string中,它会将字符串拆分为字节或char * s,以便它可以在偏移量中使用它们?对不起,如果这没有多大意义。在C++中字符串到字节或字符

回答

3

std::string类有两个方法可以帮助你:

  • c_str(),返回一个\0封端的char*字符串(又名一个 “C” 风格的字符串);
  • data(),返回字符串的内容char const*,但没有\0终止;您必须单独使用length()size()检索长度。
1

你可以调用c_str()来获取一个代表字符串数据的原始字符数组作为c字符串。

0

您可以使用data()memcpy()到所有字节复制到另一个地址,或通过索引字符串对象访问字符串中的字节...

std::string x; 
if (std::cin >> x) // note: read one whitespace-separated token, use getline for lines 
{ 
    memcpy(p_dest, x.data(), x.size()); // to copy everything... 
    // ...or... 
    p_dest[offset] = x[i]; // copy one character, 0 <= i < x.size() 
}