C标准函数总结:scanf, gets, fgets, getchar, putchar, strlen, fflush

目录

1.scanf

1.1函数原型

1.2函数功能

2.gets函数

2.1函数原型

2.2函数功能

3.fgets函数

3.1函数原型

3.2函数功能

3.3使用方法:

4.getchar

4.1函数原型

4.2函数功能

5.putchar

5.1函数原型

5.2函数功能

6.strlen

6.1函数原型

函数功能

7.fflush函数


1.scanf

1.1函数原型

# include <stdio.h>
int scanf(const char *format, ...);

1.2函数功能

可参考下面这个博客

(11条消息) C语言中scanf函数用法详解_scanf的变量_沧州刺史的博客-CSDN博客

2.gets函数

2.1函数原型

# include <stdio.h>
char *gets(char *str);
//str:提前申请的空间(人为判断,且必须大于可能输入的字符串长度),存放接收的数据。
//返回值:提前申请的空间,即str。

2.2函数功能

        从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间(需定义好大小)。

       函数隐患:gets()函数不检查目标数组是否能够容纳输入,而若想把一个字符串读到程序中,最先要做的事情就是预留存储字符串的空间。所以这很容易导致分配的空间不够大而数组越界。

3.fgets函数

3.1函数原型

char *fgets(char *str, int size, FILE *stream);
//str:提前申请的空间,用于存放接收的数据。
//size:想读取的长度。
//stream:从哪读取。(常用的从键盘读取:stdin)
//返回值:成功:返回指向该串的指针。失败或读到文件结尾返回空指针。

3.2函数功能

        读取从键盘上输的入字符,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。

3.3使用方法:

        以char str[N];fgets(str, N, stdin);为例

        fgets只能读取N-1个字符,包括最后的’\n’。读完结束后系统将自动在最后加’\0’(gets读完结束后系统自动会将’\n’置换成’\0’)。

        fgets有两种情况:

1、从键盘上输入>N-1个字符(包括’\n’)时,那么字符串str会以’\0’结尾

示例:

#include <stdio.h>
#include <string.h>
#define N 5

int main()
{
    char str[N];
    printf("please enter str\n");
    fgets(str, N, stdin);

    printf("%s\n", str);
    printf("strlen:%d\n", strlen(str));

    return 0;
}

/*
结果:
please enter str
1234asdf
1234
strlen:4
*/

2、从键盘上输入<=N-1个字符(包括’\n’)时,那么字符串str会以‘\n\0’结尾。这就造成了strlen(str)比想象的大 1 ,可以使用代码将’\n’去掉。

示例:

#include <stdio.h>
#include <string.h>
#define N 5

int main()
{
    char str[N];
    printf("please enter str\n");
    fgets(str, N, stdin);

    printf("before treat\n%s\n", str);
    printf("strlen:%d\n", strlen(str));

    if(str[strlen(str) - 1] == '\n') //去掉换行符
    {
        str[strlen(str) - 1] = '\0';
    }

    printf("after treat\n%s\n", str);
    printf("strlen:%d\n", strlen(str));

    return 0;
}
/*
结果:
please enter str
12a
before treat
12a

strlen:4
after treat
12a
strlen:3
分析:处理前,得到的字符串为:’12a\n\0’。处理后,字符串为:’12a\0\0’
*/

4.getchar

4.1函数原型

int getchar(void);
//返回值:字符的ASCII码值(整数)。
//在读取结束或者失败的时候,会返回EOF。

4.2函数功能

        读取一个字符。

5.putchar

5.1函数原型

int putchar(int src);

5.2函数功能

        向标准输出设备(屏幕)上输出一个字符。

示例:

#include<stdio.h>
int main()
{
       putchar('A');
       putchar(66);
       char ch = 'C';
       putchar(ch);
       return 0;
}
/*
结果:
ABC
*/

6.strlen

6.1函数原型

size_t  strlen (const char* str);
//str:字符指针
//返回值:size_t(即:unsigned int),字符串长度

函数功能

        计算的是字符串str的长度,从字符的首地址开始遍历,以 '\0' 为结束标志,然后将计算的长度返回,计算的长度并不包含'\0'

7.fflush函数

        常见用法:fflush(stdin);清楚键盘输入的缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值