字符串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()更加复杂,执行时间也更久(当然,我们感觉不到)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律