皆様いつもお世話になってマス(^^;
今回はint型の整数をchar型に(右詰で)入れる方法について
int counter = 100;
char input_kaisuu[10];
counter++;
↑今カウンターは101です。
これを「input_kaisuu」に右詰で設定したいのです。
"0000000101"←結果としてこんなかんじに。
-------------------------------------------------
ちなみにこんなことをやってみました。
sprintf(input_kaisuu, "%d", counter);
このやり方だと左詰で"1010000000"というようになってしまい、
全然違う数になってしまいました。(^^;
他にいい方法があれば教えてください!
No.1ベストアンサー
- 回答日時:
%d を %09d にすると、お望みのものが出せます。
10進数で、9桁で表示する。表示する数字が9桁以下のときは先頭に0を表示する。
といった意味です。
10桁入れたいときは、char input_kaisuu[11] としてくださいね。
#文字列の終わりを表す文字も入れなきゃいけないので
この回答への補足
なるほど!
では、「10進数で、10桁で表示する。表示する数字が10桁以下のときは先頭に0を表示する。」
としたい時は、%010d とすれば良いのですか?
回答ありがとうございました。
今まで出力用書式フラグの事を知らずにいました。
結果
char input_kaisuu[11]として、
%010dとすることで、解決できました。
No.4
- 回答日時:
「回答」はcherry moonさんとnaturalさんにおまかせして、質問の文章の中に、恐らく
techtakさんが誤解されていると思われる個所がありますので、注意を喚起しておきます。
> sprintf(input_kaisuu, "%d", counter);
> このやり方だと左詰で"1010000000"というようになってしまい
とはならないはずです。(ライブラリがバグっていない限り)
この場合、配列の1番目から3番目(添字の0~2)に"101"が入り、4番目に'\0'が入ります。
'0'と'\0'は同じではありません。後者はゼロですが、前者は48という値(16進数で30)
で'0'という文字を表します。また、配列の5番目から最後までに入る値は定義されていません。
親切な実装ならゼロを入れてくれるかもしれませんが、一般的には、前に使った時のゴミが
入っている場合が多いです。今回は、多分、最初なのでゼロ('0'ではなく'\0')が入って
いたのだと思います。
ご指摘の通りです。
16進で確認したところ101の後ろにはNULL文字が入っていました。
不適切な質問で正確な回答は返ってきませんよね。
次回からは問題を正確に把握してから質問したいとおもいます。
ありがとうございました。
No.2
- 回答日時:
sprintf(input_kaisuu, "010%d", counter);
では如何でしょうか。
但しinput_kaisuuは'\0'分も含めて11以上の配列にして下さいね。(^_^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 配列の長さの上限
-
2次元配列を戻り値とする関数?
-
VBで構造体の配列を関数に渡す...
-
VB2010でのコントロール多次元...
-
C# 配列の変数宣言について。
-
Functionの戻り値を2次元配列...
-
配列を使わずに、変数名を動的...
-
LGノートPCグラムについて
-
テキストファイルから文字列を...
-
配列で格納したものをmsgboxで...
-
if文の判定条件に配列
-
c言語でのヒストグラム作成用の...
-
大きさが領域未定の画像の配列...
-
配列について
-
市販のビンゴカードについて
-
メモリの初期値
-
VBでC言語のポインタみたい...
-
配列変数のアドレス
-
C言語 変換指定%sについてです。
-
実数→文字列の方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列を使わずに、変数名を動的...
-
配列で格納したものをmsgboxで...
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
先頭アドレスとは何ですか?
-
C言語で特定列だけを抽出して配...
-
配列の参照渡しで型が一致しま...
-
VBで構造体の配列を関数に渡す...
-
C++ vectorに配列をプッシュしたい
-
【速いブラインドタッチ】手を...
-
unsigned char配列への入力の仕方
-
配列をEraseしてもメモリが開放...
-
【C言語】配列の中に配列を入れ...
-
ExcelVBAで質問です。離れた二...
-
4勤2休のシフト作成
-
Functionの戻り値を2次元配列...
-
Redimした動的配列はEraseする...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
おすすめ情報