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