0

さて、私はC ++でメモリエディタに取り組んでいます。オフセットのリストがあり、オフセットを変更するもの(0x68)を事前定義すると機能しますが、文字列を変換する方法があるかどうか疑問に思っていました.のように、cin >> string で、文字列をバイトまたは char* に分割して、オフセットで使用できるようにしますか? これがあまり意味をなさない場合は申し訳ありません。

4

3 に答える 3

3

このstd::stringクラスには、次の 2 つのメソッドがあります。

  • c_str()\0で終わるchar*文字列 (AKA "C" スタイルの文字列)を返します。
  • data()char const*、文字列の内容を aに返しますが、\0終端はありません。length()またはで長さを個別に取得する必要がありますsize()
于 2012-07-02T01:02:46.553 に答える
1

c_str() を呼び出して、文字列データを ac 文字列として表す生の char 配列を取得できます。

于 2012-07-02T00:58:52.183 に答える
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()
}
于 2012-07-02T01:12:23.620 に答える