Fork me on GitHub

字符串3

字符串的输出

前情提到,打印字符串可以使用puts()函数、fputs()函数和printf()函数

puts()函数

puts()函数的使用十分简单,只需把字符串常量或字符串的地址作为参数传递给它就行

 /* put_out.c -- 使用 puts() */
 #include <stdio.h>
 #define DEF "I am a #defined string."
 int main(void)
 {
 char str1[80] = "An array was initialized to me.";
 const char * str2 = "A pointer was initialized to me.";

 puts("I'm an argument to puts().");
 puts(DEF);
 puts(str1);
 puts(str2);
 puts(&str1[5]);
 puts(str2 + 4);

 return 0;
 }

输出的结果是每个字符串独占一行,因为puts()在显示字符串时会在末尾加上换行符

puts()函数在遇到空字符(\0)时停止

fputs()函数

fputs()函数是puts()针对文件制定的版本

有以下区别:

1.fputs()函数的第二个参数指明要写入的文件。当然如果要打印在显示器上,可以用定义在stdio.h中的stdout(标准输出)作为该参数

2.与puts()函数不同,fputs()函数不会在输出的末尾添加换行符

总结:

1.gets()函数丢弃输入中的换行符

2.puts()函数自动在输出中添加换行符

3.fgets()函数保留在输入中的换行符

4.fputs()函数不会在输出中添加换行符

上代码:假设要编写一个循环,读取一行,换一行再打印输出

 char line[81];
 while (gets(line))    // 与while (gets(line) != NULL)相同
      puts(line);

也可以这样写

 char line[81];
 while (fgets(line, 81, stdin))
      fputs(line, stdout);

printf()函数

printf()简直就是老朋友了,与puts()类似,但不会自动添加换行符,需要自己手动输入。printf()也可以格式化不同的数据类型

printf("%s\n", string);与puts(string);一样

显然,使用prinf()更加复杂,执行时间也更久(当然,我们感觉不到)

posted @   硫酸钠  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示