11.3 字符串和字符数组 sprintf()函数

sprintf()函数声明在stdio.h中,它是将数据写入字符串,而不是打印在显示器上,因此,该函数可以把多个元素合成一个字符串。
【利用sprintf()函数将三个项组合成一个字符串】
程序示例

#include
#define MAX 20
char *s_gets(char *st, int n);

int main()
{
    char first[MAX];
    char last[MAX];
    char formal[2 * MAX + 10];
    double prize;

    puts("enter your first name:");
    s_gets(first, MAX);
    puts("enter your last name:");
    s_gets(last,MAX);
    puts("enter your prize money:");
    scanf("%lf", &prize);
    sprintf(formal, "%s, %-19s: $%6.2f\n", last, first, prize);
    puts(formal);

    return 0;
}
//接口函数
char *s_gets(char *st, int n)
{
    char *ret_val;
    int i = 0;

    ret_val = fgets(st, n, stdin);
    if (ret_val)
    {
        while (st[i] != '\n'&&st[i] != '0')
            i++;
        if (st[i] == '\n')  st[i] = '\0';
        else
            while (getchar() != '\n')
                continue;
    }
    return ret_val;
}

输出示例

enter your first name:
wang
enter your last name:
fei
enter your prize money:
12
fei, wang               : $ 12.00

关于s_gets()函数:
在使用fgets()函数的时候,如果读到文件结尾或者出现读取错误,那么返回NULL,s_gets()函数跳过了这个过程,如果字符串中出现换行符,就用空字符替换它;如果出现空字符,则丢弃该输入行的其余字符,然后返回fgets()相同的值。

你可能感兴趣的:(11.3 字符串和字符数组 sprintf()函数)