再学C语言47:字符串输出

文章介绍了C语言中三个常用的字符串输出函数:puts()会自动添加换行符,fputs()面向文件且不添加换行,而printf()则支持格式化输出,更加灵活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C中有3个用于输出字符串的标准库函数:puts(),fputs(),printf()

一、puts()函数

示例代码:

/* test of puts() function */
#include <stdio.h>

#define ARR_T "I am an array."

int main(void)
{
    char str1[100] = "this is an initialized array.";
    char * str2 = "this is another initialized array.";
    
    // puts()函数输出字符串的多种形式
    //puts(ARR_T);
    puts("an initialized array.");
    puts(str1);
    puts(str2);
    puts(&str1[5]);
    puts(str1 + 5);
    
    return 0;
}

运行结果:

f39c74515cc94e4a8e34237a5a7cf059.png

1)与printf()函数不通,puts()函数显示字符串时自动在其末尾添加一个换行符

2)puts()函数的停止:遇到空字符就停下来(\0),所以应确保有空字符存在 

二、fputs()函数

fputs()函数是puts()函数的面向文件版本,二者之间的区别:

1)fputs()需要第二个参数以说明要写的文件,可以使用stdout(代表standard output)作为参数进行输出显示,stdout在stdio.h文件中定义

2)与puts()函数不同,fputs()并不为输出自动添加换行符


注意:

gets()丢掉输入中的换行符;fgets()存储输入中的换行符

puts()为输入添加换行符;fputs()不为输入添加换行符

示例代码:

/* test of gets() / puts() and fgets() / fputs() */
#include <stdio.h>

int main(void)
{
    char str1[100];
    char str2[100];
    
    // gets()函数和puts()函数搭配
    printf("input a name:\n");
    gets(str1); // 
    //printf("\n");
    puts(str1);
    
    // fgets()函数和fputs()函数搭配
    printf("input another name:\n");
    fgets(str2, 100, stdin); // 3个参数
    fputs(str2, stdout); // 2个参数

    return 0;
}

运行结果:

c1b5ec18f1fc4ff98fa0c9c007affdd6.png


三、printf()函数

printf()函数需要一个字符串作为参数

printf()函数使用不如puts()函数方便,但是其可以格式化多种数据类型,因而更通用

printf()函数并不自动在新行上输出每一个字符串

// 两个语句效果相同
printf("%s\n", str);
puts(str);

如果需要在一行输出多个字符串,printf()函数更简单:

printf("%s, %s\n", str1, str2);

puts()函数无法这么轻易地实现该功能,因为puts()函数会自动为输出添加换行符,用fputs()函数可以

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forster-C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值