C语言sprintf怎么使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言sprintf怎么使用?相关的知识,希望对你有一定的参考价值。

请写出函数原型,使用方法
谢谢

sprintf函数的功能是把格式化的数据写入某个字符串缓冲区。

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

buffer:char型指针,指向将要写入的字符串的缓冲区。

format:格式化字符串。

[argument]...:可选参数,可以是任何类型的数据。


示例

int main()

    char buffer[50];//大小50的char字符数组
    int n,a=5,b=3;//
    n=sprintf(buffer,"%d + %d = %d",a,b,a+b);//把a,b,a+b以第二个参数的形式写入buffer
    printf("[%s]is a string %d chars long\\n",buffer,n);/*“格式输出函数”*/
    return 0;

输出结果[5 + 3 = 8] is a string 13 chars long


sprintf格式的规格如下所示。[]中的部分是可选的。

%[指定参数][标识符][宽度][.精度]指示符

若想输出'%'本身时, 请使用'%%'处理。

1. 处理字符方向。负号时表示从后向前处理。

2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。

3. 字符总宽度。为最小宽度。

4. 精确度。指在小数点后的浮点数位数。


转换字符

%% 印出百分比符号,不转换。

%c 整数转成对应的 ASCII 字元。

%d 整数转成十进位。

%f 倍精确度数字转成浮点数。

%o 整数转成八进位。

%s 整数转成字符串。

%x 整数转成小写十六进位。

%X 整数转成大写十六进位。

参考技术A 函数功能:  把格式化的数据写入某个字符串
头文件:  stdio.h函数原型:  int sprintf( char *buffer, const char *format, [ argument] … );参数列表:  buffer:char型指针,指向欲写入的字符串地址。

  format:char型指针,指向的内存里面存放了格式字符串。

  [argument]...:可选参数,可以是任何类型的数据。

  返回值:字符串长度(strlen)
相关函数:  int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format, [argument] ... );

  int _sprintf_s_l(char *buffer,size_t sizeOfBuffer,const char *format,locale_t locale ,[argument] ... );

  int swprintf_s(wchar_t *buffer,size_t sizeOfBuffer,const wchar_t *format ,[argument]...);

  int _swprintf_s_l(wchar_t *buffer,size_t sizeOfBuffer,const wchar_t *format,locale_t locale ,[argument]…);

  template <size_t size>

  int sprintf_s(char (&buffer)[size],const char *format, [argument] ... ); //仅存在于C++

  template <size_t size>

  int swprintf_s(wchar_t (&buffer)[size],const wchar_t *format ,[argument]...); //仅存在于C++

编辑本段参数说明及应用举例  sprintf格式的规格如下所示。[]中的部分是可选的。

  %[指定参数][标识符][宽度][.精度]指示符

  若想输出`%'本身时, 请这样`%%'处理。

  1. 处理字符方向。负号时表示从后向前处理。

  2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。

  3. 字符总宽度。为最小宽度。

  4. 精确度。指在小数点后的浮点数位数。

  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

  %% 印出百分比符号,不转换。

  %c 整数转成对应的 ASCII 字元。

  %d 整数转成十进位。

  %f 倍精确度数字转成浮点数。

  %o 整数转成八进位。

  %s 整数转成字符串。

  %x 整数转成小写十六进位。

  %X 整数转成大写十六进位。

参考资料:http://baike.baidu.com/view/1295144.htm

本回答被提问者采纳
参考技术B 函数功能:把格式化的数据写入某个字符串
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)

例子:
char* i = "I";
char* j= "apple";
sprintf(s, "%s like %s.", i, j); //产生:"i like apple. " 这字符串写到s中

sprintf(s, "%d", 123); //产生"123" //把整数123 打印成一个字符串保存在s 中。

sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142",%f 倍精确度数字转成浮点数

c语言中sprint函数怎么使用?

如sprintf(str,"****",@@@)中是什么意思

sprintf(str,......)和printf(......)功能差不多,后者是输出到屏幕,前者是输出到字符串str 参考技术A 往一个字符串中输出。其余的和printf一样。输出后可以对字符串再进行处理。

以上是关于C语言sprintf怎么使用?的主要内容,如果未能解决你的问题,请参考以下文章

C语言sprintf问题

C语言 sprintf()函数--有难度的!!!

c语言中sprint函数怎么使用?

c语言中的sprintf函数?

C语言 sprintf 函数

C语言将数字转换为字符型输出(用函数)