4

ガベージという文字列があるとしましょう。

ゴミの中にあるものは何でも、それから char 配列を作りたいです。各要素は文字列の 1 文字になります。

したがって、コードは次のようになります。

const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};

ただし、これにより「初期化で文字列を文字に変換できません」というエラーが発生します。

これを行う正しい方法は何ですか?いまいましいものに文字列をフィードして、それから配列を作成したいだけです。

4

4 に答える 4

14

C++std::stringは内部char配列を維持します。c_str()メンバー関数でアクセスできます。

#include <string>
std::string myStr = "Strings! Strings everywhere!";
const char* myCharArr = myStr.c_str();

内部配列は変更できないことに注意してください。必要に応じて、配列のコピーを作成し、コピーを変更します。

于 2012-12-04T01:10:52.157 に答える
0

garbage.data()これは、文字列データを含む文字配列の最初の要素へのポインターです。

于 2012-12-04T01:11:41.910 に答える
0

または、これを行うには重い方法があります。

#include <string>
std::string temp = "something";
char* myChar = new char(temp.length());
for(int i = 0; i < temp.length(); ++i){
    a[i] = temp[i];
}
于 2015-11-12T20:00:30.073 に答える