1.9 KiB
1.9 KiB
C 语言中的sprintf()函数
原文:https://overiq.com/c-programming-101/the-sprintf-function-in-c/
最后更新于 2020 年 7 月 27 日
sprintf()的工作方式与printf()类似,但它不是向控制台发送输出,而是返回格式化的字符串。
语法: int sprintf(char *str, const char *control_string, [ arg_1, arg_2, ... ]);
sprintf()函数的第一个参数是指向目标字符串的指针。其余参数与printf()函数相同。
该函数将数据写入str指向的字符串,并返回写入str的字符数,不包括空字符。返回值通常会被丢弃。如果操作过程中出现错误,它将返回-1。
下面的程序演示了如何使用sprintf()功能。
#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;
}
预期输出:
Enter your name: Bob
Enter your designation: Developer
Enter your salary: 230000
Welcome Bob!
Name: Bob
Designation: Developer
Salary: 230000
sprintf()函数的另一个重要用途是将整数值和浮点值转换为字符串。
#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;
}
预期输出:
s1 = 100
s2 = 300.000000