C有三个用于输出字符串的标准库函数puts()、fputs()和printf()。
1、puts()函数只需要给出字符串参数的地址。
#include <stdio.h>
int puts(const char *s);
示例:
#include <stdio.h>
#define DEF "I am libing"
int
main(int argc, char **argv)
{
char str1[30] = "I am libing.";
const char *str2 = "I am libing";
puts("I am libing.");
puts(DEF);
puts(str1);
puts(str2);
return 0;
}
运行结果测试:
I am libing.
I am libing
I am libing.
I am libing
注意:上面的所有字符串都是单行显示,但并没有在后面添加换行符。这就是,与printf()不同,puts()显示字符串时自动在其后添加一个换行符。2、fputs()函数时puts()的面向文件版本。两者的区别是:
a、fputs()需要第二个参数来说明要写的文件。
b、与puts()不同,fputs()并不为输出自动添加换行符。
#include <stdio.h>
int fputs(const char *s, FILE *stream);
注意:gets()丢掉输入里的换行符,但puts()为输出添加换行符。另一方面,fgets()存储输入中的换行符,而fputs()也不为输出添加换行符。
技巧:假定写一个循环,读取一行并把它回显在下一行,可以这么写:
char line[80];
while(gets(line))
puts(line);
3、printf()与puts()的区别之一就是printf()并不自动在新行上输出每一个字符串。必须指明需要另起一行的地方。
pintf("%s \n", string);等同于 puts(string);