本文共 1628 字,大约阅读时间需要 5 分钟。
C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
问题描述: 向同一个变量中赋值会覆盖之前的值
代码部分:
#include <stdio.h>
#include <math.h>
int main()
{
char str[80];
sprintf(str, "value Pi = %f", M_PI);
puts(str);
sprintf(str, "Pi 的值 = %f", M_PI);
puts(str);
return(0);
}
结果显示:
value Pi = 3.141593
Pi 的值 = 3.141593
问题描述(仅用sprintf函数):
把char s[]="computer";char c='1'; int i = 35;float fp = 1.7326536f; 不同类型的数据拼接成一个字符串;
代码部分:
#include<stdio.h>
int main(void)
{
char buffer[200];
char s[]="computer";
char c='1';
int i = 35;
int j=0;
float fp = 1.7326536f;
//格式化并打印各种数据到buffer中
j = sprintf( buffer, "string:%s\n",s);
j += sprintf( buffer + j, " character:%c\n",c);
j += sprintf( buffer + j, " integer:%d\n",i);
j += sprintf( buffer + j, " real:%f\n",fp);
printf("Output:\n%s\ncharacter count=%d\n",buffer,j);
return 0;
}
结果显示:
Output:
string:computer
character:1
integer:35
real:1.732654
character count=56
问题描述(用sprintf函数,和strcat函数):
把char s[]="computer";char c='1'; int i = 35;float fp = 1.7326536f; 不同类型的数据拼接成一个字符串;
代码部分:
#include<stdio.h>
#include <string.h>
int main()
{
char buffer[200];
char s[]="computer";
float fp = 1.7326536f;
char temp[1024] = {0};
char temp_other[1024] = {0};
sprintf(temp, "string:%s\n", s);
sprintf(temp_other, "real:%f\n", fp);
strcat(temp,temp_other);
printf("Output:\n%s\n", temp);
return 0;
}
结果显示:
Output:
string:computer
real:1.732654
转载地址:http://ffngi.baihongyu.com/