C语言字符串处理函数 puts()和fputs()的区别及使用

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 puts()和fputs()的区别使用方法,以及相关的示例代码。

1、puts()

标准设备输出 s 字符串,在输出完成后自动输出一个’\n’。代码如下,

#include <stdio.h>

#define DEF "code cjavapy"

int main(int argc, char **argv)
{
/*
int puts(const char *s); 
参数
s:字符串首地址
返回值
成功:非负数
失败:-1
*/
    char str1[30] = "www.cjavapy.com";
    const char *str2 = "cjavapy";

    puts("hello world");
    puts(DEF);
    puts(str1);
    puts(str2);

    return 0;
}

2、fputs()

将 str 所指定的字符串写入到 stream 指定的文件中, 字符串结束符 ‘\0’ 不写入文件。代码如下,

#include <stdio.h>
#include <stdlib.h>

int main()
{
/*
int fputs(const char * str, FILE * stream);
参数
str:字符串
stream:文件指针,如果把字符串输出到屏幕,固定写为 stdout
返回值
成功:0 
失败:-1
*/
    //文件指针初始化
    FILE* f;
    char ch[100];

    //创建写操作的文件
    f = fopen("includehelp.txt", "w");
    printf("请输入5个字符\n");
    for (int i = 0; i < 4; i++) {
        scanf("%[^\n]", &ch);
        //写入文件
        fputs(ch, f);
        fputs("\n", f);
        //清除stdin流缓冲区
        fflush(stdin);
    }

    scanf("%[^\n]", &ch);
    fputs(ch, f);
    //写操作结束后关闭文件
    fclose(f);

    //打开文件
    f = fopen("includehelp.txt", "r");
    printf("\n...............打印字符串..............\n");
    while (!feof(f)) {
        //获取字符数组中的前100个字符
        fgets(ch, 100, f);
        //输出字符串
        printf("%s", ch);
    }
    //关闭文件
    fclose(f);

    return 0;
}

注意:fputs() puts()的文件操作版本,但 fputs()不会自动输出一个’\n’

3、puts()和fputs()区别

fputs()puts()的文件操作版本,fputs()需要第二个参数来说明要写的文件,与puts()不同,fputs()不为输出自动添加换行符与fgets()一起使用。代码如下,

#include <stdio.h>
int main()
{
    char str[80] = "www.cjavapy.com";/*字符串常量存入字符数组 */
    char ch[100];
    FILE * fp;   /*定义文件指针fp*/
    //文件指针初始化
    FILE* f;
    if ((fp = fopen( "strfile", "w" )) == NULL)  /*打开文件写模式*/
    {
        printf("cannot open the file.\n");     /*判断文件是否正常打开*/
    }
    fputs(str, fp);                               /*将字符串写入文件*/
    fclose(fp);                                   /*关闭文件*/
     //打开文件
    f = fopen("strfile", "r");
    printf("\n...............打印字符串..............\n");
    while (!feof(f)) {
        //获取字符数组中的前100个字符
        fgets(ch, 100, f);
        //输出字符串
        printf("%s", ch);
    }
    //关闭文件
    fclose(f);
    return 0;
}

推荐阅读
cjavapy编程之路首页