C言語で数値を文字列に変換するプログラムの書き方
この記事では、C言語において数値(整数型・浮動小数点型など、あらゆる数値型データ)を文字列に変換する方法を解説します。
変換のロジックは非常にシンプルです。ここでは sprintf() 関数を使用します。この関数は、値や文字列をコンソールではなく、文字列バッファに出力(格納)するために使われます。printf() との唯一の違いはこの点です。sprintf() の第1引数には、変換結果を保存したい文字列バッファを指定します。
入力: ユーザーが数値(例:42.26)を入力する 出力: プログラムはその数値に対応する文字列(例:"42.26")を返す
アルゴリズム
ステップ1: ユーザーから数値を入力として受け取る ステップ2: 結果を格納するための空の文字列バッファを作成する ステップ3: sprintf() を使って数値を文字列に変換する ステップ4: 終了
サンプルコード
#include<stdio.h>
main() {
char str[20]; // 数値を格納するための空の文字列を作成
float number;
printf("Enter a number: ");
scanf("%f", &number);
sprintf(str, "%f", number); // sprintf関数を使って数値を文字列に変換
printf("\nYou have entered: %s", str);
}実行結果
Enter a number: 46.3258 You have entered: 46.325802
補足
実行結果を見ると、入力した「46.3258」が「46.325802」と表示されています。これは %f 指定子がデフォルトで小数点以下6桁を出力するためです。桁数を制御したい場合は、sprintf(str, "%.4f", number) のように精度を指定すると、「46.3258」というように意図した形式で文字列化できます。
-
C言語プログラム:日数を月と日に変換する方法を解説
ユーザーが総日数を入力すると、その日数を「月数」と「翌月に残る日数(余り)」に変換するプログラムを作成します。日数を月数に変換するための計算式は以下の通りです。 月数 = 日数 ÷ 30また、翌月に残る日数を求めるためのロジックは以下の通りです。 残りの日数 = 日数 % 30(30で割った余り)アルゴリズム日数を月数と日数に変換するためのアルゴリズムは以下の通りです。ステップ1: 開始ステップ2: 月数と日数の変数を宣言するステップ3: 総日数を入力するステップ4: 月数を計算する months = days / 30ステップ5: 残りの日数を計算する days = days % 3
-
数値を英語の単語に変換するCプログラムの書き方
数値で構成された文字列が与えられたとき、その数値を英語の単語(スペル表記)へ変換するのが本記事の課題です。例えば、入力が「361」であれば、出力は「Three hundred sixty one」となるようにします。この問題を解くためには、一の位・十の位・百の位・千の位など、それぞれの数字がどの桁に位置しているのかを意識することが重要です。なお、今回紹介するコードは最大4桁、つまり0から9999までの数値に対応しています。したがって、入力は0〜9999の範囲である必要があります。例として「1,111」を考えてみましょう。各桁は以下のように対応します。千の位:1(one thousand)百の位