目录
1.scanf
1.1函数原型
# include <stdio.h>
int scanf(const char *format, ...);
1.2函数功能
可参考下面这个博客
(11条消息) C语言中scanf函数用法详解_scanf的变量_沧州刺史的博客-优快云博客
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);清楚键盘输入的缓存