- ベストアンサー
atoi( ) の反対をやりたい
int型 を charの配列型 にしたいんだけど、 そういう関数がなさそうだから、そういう動作を するものを作ってみました。 #include <iostream.h> main(){ int n = 123; char c[4]; for (int i=4-2; i>=0; i--) { c[i] = n%10+48; n/=10; } c[4-1] = '\0'; cout << c; } char c[4]; の部分が気に入りません。 4 という数字を int n = 123; の桁数の 3+1 で やりたいんだけど、配列の添え字は定数でないと いけないらしく、それはできませんでした。 malloc( ) というものを使ったことがないんだけど 配列の宣言後に malloc() とかで配列のメモリを 変える方法があったら教えてください。 全体的に、int型 を charの配列型 にする考え方で もっとよい方法とか、それをする関数があれば 教えてください。 vecter( ) を使った場合では、出力する時に、 cout << hairetu[0]; cout << hairetu[1]; cout << hairetu[2]; というふうにしないとだめみたいで、普通の配列と違って cout << hairetu; で出力できなかったから vecter( ) 以外の方法を知りたいです。
- みんなの回答 (7)
- 専門家の回答
お礼
ありがとうございます。 No.3 の kenji_ さんの c = (char *)malloc(strlen(n)); は間違っているは、見てすぐにわかったけど、 それを見て、123 の桁数を使うという意味は伝わりました。 でも、 c = (char *)malloc(strlen(n+1)); でないとおかしいかなと思っていたら、 pikacchuさんは strlen(tmp)+1 としていたから、やっぱり、123 の3桁に1を足した4が malloc( ) の引数ですよね。