首页 > 其他分享 >字符串的输入输出函数

字符串的输入输出函数

时间:2023-02-14 17:00:16浏览次数:47  
标签:函数 puts 输入输出 fgets words 字符串 换行符 string

字符串的输入和输出

一:字符串输入

  1. gets()函数:用来读取整行输入,直至遇到换行符,然后丢弃换行符,储存其余字符,并在这些字符的末尾添加一个空字符使其成为一个C字符串。它经常与puts()函数配对使用,该函数用于显示字符串,并在末尾添加换行符。

#include<stdio.h>
#define STLEN 81 
int main(void)
{
    char words[STLEN];
    
    puts("Enter a  string, please.");
    gets(words);//典型用法
    printf("Your string twice:\n");
    printf("%s\n",words);
    puts(words);
    puts("Done."); 
    return 0; 
    
}

整行输入(除了换行符)都被储存在words中,puts(words) 和 printf("%s\n",words)的效果

运行结果:

Enter a  string, please.
you are so perfect.best wish for you
Your string twice:
you are so perfect.best wish for you
you are so perfect.best wish for you
Done.
​

 

  1. fgets()函数

    (1). fgets()函数通过第二个参数限制读入的字符串来解决溢出的问题。

(2).fgets()函数的第二个参数指明了读入字符的最大数量。如果该参数的值为n,那么fgets()读入n-1个字符,或者读到遇到的第一个换行符为止

(3).如果读到一个换行符,它会把它存储在字符串中。这点与gets()不同,gets()会丢弃换行符

(4).fgets()函数的第三个参数指明要读入的文件,以stdin作为参数

#include<stdio.h>
#define STLEN 14
int main(void)
{
    char words[STLEN];
    
    puts("Enter a  string, please.");
    fgets(words,STLEN,stdin);
    printf("Your string twice(puts(),then fputs()):\n");
    puts(words);
    fputs(words,stdout);
    puts("Enter another  string, please.");
    fgets(words,STLEN,stdin);
    printf("Your string twice(puts(),then fputs()):\n");
    puts(words);
    fputs(words,stdout);
    puts("Done."); 
    
    return 0; 
    
}

 

运行结果:

Enter a  string, please.
apple pie
Your string twice(puts(),then fputs()):
apple pie
​
apple pie
Enter another  string, please.
strawberry shortcake
Your string twice(puts(),then fputs()):
strawberry sh
strawberry shDone.
​

fgets()只读入了13个字符,并把strawberry sh\0 储存在数组中。并且fputs()不会在待输出字符串末尾添加一个换行符

  1. gets_s()函数

(1).get_s()只从标准输入中读取数据,所以不需要第三个参数。

(2).如果get_s()读到换行符,会丢弃它而不是存储它。

 

二:字符串输出

  1. puts()函数

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; 
    
}

 

运行结果:

I'm an argument to puts().
I am a #defined string.
An array was initialized to me.
A pointer was initialized to me.
ray was initialized to me.
inter was initialized to me.
​

puts()在显示其字符串时,会自动在其末尾添加一个换行符。

在puts(&str1[5]);中,&str1[5]表示str数组的第六个元素,puts()从该元素开始输出。

在puts(str2+4);中,str2+4指向储存“pointer”中的i的存储单元,puts()从这里开始输出。

  1. 打印一个字符串,并统计打印的字符数

int put2(const char *string)
{
    int count =0;
    while(*string){
        putchar(*string++);
        count++;
    }
    putchar('\n');//不统计换行符 
    
    return (count);
}
 

 

标签:函数,puts,输入输出,fgets,words,字符串,换行符,string
From: https://www.cnblogs.com/ninnne/p/17120160.html

相关文章

  • 翻硬币 【 字符串 | 思维 】
    翻硬币Description小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用*表示正面,用o表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻......
  • Jackson无法将LocalDateTime序列化成字符串的解决办法
     1.情景展示在web开发过程中,如果使用的是SpringBoot框架的话,我们通常使用在前后端数据交互的时候,我们通常会涉及到日期类型的转换。当我们需要将日期类型转换成字......
  • 02-Go函数、包、条件判断、循环、switch
    1函数基础//0强调在同一个包下,无论有多少go文件,函数名和变量名不能重复函数和变量可以直接使用//把一个包,当成一个大的go文件看待go中,函数参数没有关......
  • 云小课|使用SpringBoot快速构建FunctionGraph HTTP函数
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击......
  • 稳妥构造函数模式
    /*稳妥对象(durableobjects)*所谓稳妥对象,指的是没有公共属性,而且其方法也不引用this对象。*稳妥模式最适合在一些安全环境中(这些环境会禁止使用this和new),*或......
  • 寄生构造函数模式
    /*感觉没多大用记下得了*//**基本思维:*创建一个函数,该函数的作用仅是封装创建对象的代码,然后返回新创建的对象。*表面上看很像构造函数**/func......
  • jQuery对象和JS对象区别与转换jQuery时间绑定&入口函数&样式控制
    jQuery对象和JS对象区别与转换JQuery对象和JS对象区别与转换1.JQuery对象在操作时,更加方便。2.JQuery对象和js对象方法不通用的3.两者相互转换jq......
  • 类的构造函数和析构函数
    构造函数和析构函数构造函数是类的入口函数析构函数是类的销毁函数1、构造函数a、构造函数默认是public类型的,如果定义private则定义外部不能进行对象的创建,所以只能是......
  • 3621、亲密字符串
    给你两个字符串s和goal,只要我们可以通过交换s中的两个字母得到与goal相等的结果,就返回true;否则返回false。交换字母的定义是:取两个下标i和j(下标从0开始)且......
  • php 字符串匹配相似度
    <?phpclassLCS{var$str1;var$str2;var$c=array();/*返回串一和串二的最长公共子序列*/functiongetLCS($str1,$str2,$len1=......