C语言的printf和sprintf语句的调用有什么区别?

printf函数中什么时候使用%什么时候使用&,什么时候使用分号?sprintf呢?

sprintf 是输出到字符串,一般是直接申请输出到一个字符串中,这个可以用来将大量数字数据转成字符串。

printf 是直接输出到标准显示设备,就是屏幕的终端中。

相似的还有 fprintf 是输出到文件,当然,这个文件也可能是虚拟的文件。

printf函数与sprintf不同之处有:

(1)函数的声明不同

int printf(const char *format [, argument]...);
int sprintf(char *buffer, const char *format [, argument] ...);

sprintf比printf多一个参数buffer,这个参数的作用见(2)的描述。

(2)函数的功能不同

•函数printf(...)根据指定的格式(format)将参数(argument)输出到屏幕上;

•函数sprintf(...)根据指定的格式(format)将参数(argument)输出到由指针buffer指定的字符数组(字符缓冲区)中;

(3)用法举例
#include
void main()
{
/*字符数组buffer用于存放sprintf函数的输出*/
char buffer[256];
int x = 100;
char *message = "Hello world";

/* 用sprintf函数将x和message输出到字符数组buffer中 */
sprintf(buffer, "%s%d", message, x);

/* 用printf函数将buffer的内容输出到屏幕上显示 */
printf("%s\n", buffer);

}