0

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

4

3 回答 3

3

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

  • c_str(),返回一个以-\0结尾的char*字符串(又名“C”风格的字符串);
  • data(),返回 a 中字符串的内容char const*,但没有\0终止;length()您必须使用or单独检索长度size()
于 2012-07-02T01:02:46.553 回答
1

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

于 2012-07-02T00:58:52.183 回答
0

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

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()
}
于 2012-07-02T01:12:23.620 回答