C の sprintf() 関数

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