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