皆様いつもお世話になってマス(^^;
今回は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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- Ruby パイソンプログラミング 2 2022/12/03 18:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
複数の選択範囲の行番号を個別...
-
配列で格納したものをmsgboxで...
-
メモリの初期値
-
配列同士の文字列の比較
-
VB.netでRadioButtonを配列にし...
-
パイソンの
-
2次元配列を戻り値とする関数?
-
FORTRAN77の配列(除算)
-
C# Listを使わずに2次元配列の...
-
ポインタの配列のコンマについて
-
unsigned char配列への入力の仕方
-
VBで構造体の配列を関数に渡す...
-
テキストファイルから文字列を...
-
C# 配列の変数宣言について。
-
テンキーの配列について
-
c++によるジャンケンプログラム
-
Functionの戻り値を2次元配列...
-
char型の配列 char buff[20] = ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列の参照渡しで型が一致しま...
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
配列で格納したものをmsgboxで...
-
unsigned char配列への入力の仕方
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
-
パイソンの
-
C言語初心者 ポインタについて...
-
ExcelVBAで質問です。離れた二...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
-
Functionの戻り値を2次元配列...
-
C++ vectorに配列をプッシュしたい
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
Redimした動的配列はEraseする...
おすすめ情報