本文主要是介绍函数 —— 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() 拼接字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!