字符串到C ++中的字节或字符*

时间:2012-07-02 00:56:53

标签: c++ memory editing

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

3 个答案:

答案 0 :(得分:3)

std::string类有两种方法可以帮助您:

  • c_str(),返回\0 - 已终止的char*字符串(AKA为“C”字符串);
  • data(),返回char const*中字符串的内容,但没有\0终止;您必须使用length()size()
  • 分别检索长度

答案 1 :(得分:1)

您可以调用c_str()来获取表示字符串数据的原始char数组作为c字符串。

答案 2 :(得分: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()
}
相关问题