2017-08-26 4 views
-3

すでに似たような質問がありましたが、 ですが、悲しいことに解決策を見つけることができませんでした。 文字列を、文字列内の文字のサイズの文字配列に変換したいだけです。 例:文字列を文字配列に変換するにはどうすればよいですか?

string test = "hello"; 

char配列:

testArr[0]: 'h'; 
testArr[1]: 'e'; 
testArr[2]: 'l'; 
testArr[3]: 'l'; 
testArr[4]: 'o'; 

はJavaでは、それは非常に簡単だろうが、C++で、それは複雑なようです。

+2

場合 'などと同様に、イテレータのペアをとるコンストラクタオーバーロードを使用できます。例: 'std :: vector testArr(test.begin()、test.end())' – WhiZTiM

+0

'std :: string'はすでにCスタイルの' char'配列を含んでいます。 'test.c_str()'を使ってポインタを得ることができます。 –

+1

可能性の重複[C++の配列をcharへの文字列を変換](https://stackoverflow.com/questions/13343013/c-convert-strings-to-char-arrays)あなたは、このような配列をしたいなぜ – DMishra

答えて

0

クラス文字列は定数文字列を返すメンバ関数c_str()を持っています。そう簡単に:あなたはそれ(定数)を変更することなく、一定の文字列にしたい場合は

std::string test = "hello"; 

char* cstrTest = new char[test.length() + 1]; 
strcpy(cstrTest, test.c_str()); 

std::cout << cstrTest << std::endl; 

delete[] cstrTest; 
  • 単に:あなたの文字列は `のstd ::ベクトルは

    const char* cTest = test.c_str(); 
    cout << cTest << endl; 
    
+1

ああ大丈夫です。ありがとうございました! – Curbe

関連する問題