sprintf()
printf()
と同じように動作します ただし、出力をコンソールに送信する代わりに、フォーマットされた文字列を返します。
構文: int sprintf(char *str, const char *control_string, [ arg_1, arg_2, ... ]);
sprintf()
の最初の引数 関数は、ターゲット文字列へのポインターです。残りの引数は printf()
の場合と同じです 関数。
この関数は、str
が指す文字列にデータを書き込みます。 str
に書き込まれた文字数を返します 、ヌル文字を除く。通常、戻り値は破棄されます。操作中にエラーが発生した場合、-1
を返します。 .
次のプログラムは、sprintf()
の使用方法を示しています。 関数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include<stdio.h> #include<string.h> int factorial(int ); int main() { int sal; char name[30], designation[30], info[60]; printf("Enter your name: "); gets(name); printf("Enter your designation: "); gets(designation); printf("Enter your salary: "); scanf("%d", &sal); sprintf(info, "Welcome %s !\nName: %s \nDesignation: %s\nSalary: %d", name, name, designation, sal); printf("\n%s", info); // signal to operating system program ran fine return 0; } |
期待される出力:
1 2 3 4 5 6 7 8 | Enter your name: Bob Enter your designation: Developer Enter your salary: 230000 Welcome Bob! Name: Bob Designation: Developer Salary: 230000 |
sprintf()
のもう 1 つの重要な用途 関数は、整数値と浮動小数点値を文字列に変換することです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<stdio.h> #include<string.h> int factorial(int ); int main() { char s1[20]; char s2[20]; int x = 100; float y = 300; sprintf(s1, "%d", x); sprintf(s2, "%f", y); printf("s1 = %s\n", s1); printf("s2 = %s\n", s2); // signal to operating system program ran fine return 0; } |
期待される出力:
1 2 | s1 = 100 s2 = 300.000000 |