本文主要是介绍函数 —— sprintf() 拼接字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
参数
- str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
- format -- 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是 %[flags][width][.precision][length]specifier。
返回值
如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。
问题描述: 向同一个变量中赋值会覆盖之前的值
代码部分:
-
#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
这篇关于函数 —— sprintf() 拼接字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!