📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 660行目: | 660行目: | ||
</source> | </source> | ||
<br><br> | <br><br> | ||
== 数値を文字列に変換する == | |||
C言語で数値を文字列に変換するには、stdio.hのsprintf関数またはsnprintf関数を使用する。<br> | |||
sprintf関数は、第2引数が指す書式文字列に従って第1引数が指す文字配列へ書き込む関数である。<br> | |||
なお、文字配列に書き込んだ文字列の後には'\0'が自動的に書き込まれる。<br> | |||
snprintf関数は、基本的にはsprintf関数と同じであるが、第3引数に最大文字数分を指定する。<br> | |||
(n - 1番目より後の出力文字は第1引数に書き込まずに破棄される)<br> | |||
<br> | |||
sprintf関数とsnprintf関数は共に、第2引数が指す書式文字列はprintf関数と同様のフォーマットで指定する。<br> | |||
変換指定子に%dや%fを指定することで、数値から文字列に変換することができる。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#define N 256 | |||
int main(void) | |||
{ | |||
char s1[N] = {'\0'}; | |||
char s2[N] = {'\0'}; | |||
int i = 10000; | |||
double x = 200.123; | |||
sprintf(s1, "%d", i); | |||
snprintf(s2, N, "%.4f", x); | |||
fprintf(stdout, "s1: %s\n", s1); | |||
fprintf(stdout, "s2: %s\n", s2); | |||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C]] | [[カテゴリ:C]] | ||