2012-01-18 10 views
0

int型の値をchar *にC++の文字を表すように格納するにはどうすればいいですか?例えば10 ... char * pは文字型のポインタです。そのポインタに10文字を格納したいと思います。整数値に基づいて文字ストリームを生成する繰り返しを作成したいからです。整数とchar連結を行うには同様のjavaコードを使用します。C++ int型のchar型の文字としての変換* APIなしの変換

+3

は、代わりに 'のchar *'の 'のstd :: STRING'を使用してください。それはあなたの人生を楽にします。 –

答えて

0

私はあなたがC++と言ったことを知っていますが、あなたはchar *とも言いました。私はCとして扱います.Cでは、そうした連結は本当にできません。それを行う最良の方法は、必要な文字の数を計算することです。mallocは、char配列に文字を格納するだけです。あなたがそれを使い終わったら、それを解放することを忘れないでください! Cでは、あなたはすべて自分で行う必要があります!

+0

またはmalloc 11を返し、NULLは文字列を終了します。 –

0

私はあなたが何をしようとしてについて少し困惑しているが、ここで私はおそらくあなたがそれをうまく助けになると思ういくつかの情報があります:C++で

  1. 、あなたは主にSTDを使用する必要があります::文字列を保持する文字列。
  2. 通常のCでは、char *を使用して文字のリストを保持します。これらのchar *は\ 0で終わるNULLで終わらなければなりません。
  3. C++の道を好む、あなたは+演算子で文字列を連結することができます:

ここでは例です:

std::string myString = "H"; 
myString += "e"; 
myString += "l"; 

std::cerr << myString; //prints "Hel" to console. 

ます。また、データ型を混在させることができ、文字列ストリームを使用することができます。

std::stringstream ss; 
ss << "h" << "e" << 7 << myCustomType << std::endl; 

もうひとつ知っておくべきことは、charに整数値を格納することができ、それを印刷するときにアスキー表現が正しく動作することです。例えば

char x = 65; //x = capital A. 
+0

私は彼が 'int'を' char * 'に変換したいと思うと思います。だから 'std :: string tmp =(std :: stringstream()<< value).str();' –

関連する問題