c语言基础笔记DAY4
1.scanf缺点
- 遇到空格提前结束读取
- 如果存放字符的空间不足,会继续存放,导致内存污染
特点
- 不会读入’\n’
2.gets(char*s)
功能
- 将键盘输入,存入到s字符数组中
- 可以存入空格
特点
- 不会读入’\n’
缺点
- 如果存放字符的空间不足,会继续存放,导致内存污染
3.fgets(char*s,int num,FILE*stream)
功能
- 库函数:从键盘读取一个字符串
char num[128];
fgets(num , sizeof(num),stdin);//从stdin(标准输入)读取字符串,最大可以读取sizeof(num)-1个
- 在读取过程中,最后一个字符数组元素,会自动添加’\0’,所以最大只读取字符数组长度-1个字符
优点
- 不会造成内存污染
注意
- fgets会自动读取全部输入的内容,包含换行符
- 从指定的流 stream 读取一行,并把它存储在str所指向的字符串内。当读取(n-1)个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
4.strlen(char*s)
功能
- 获取字符串数组的有效字符个数
- 个数中不包含’\0’
5.puts(char*s)
功能
- 函数puts()把str(字符串)写到STDOUT(标准输出)上. puts() 成功时返回非负值, 失败时返回EOF
用法
char buf[128] = "abcdefg";
puts(buf);//有换行 , 自动加换行符'\n'
6.fputs(char*s,FILE*stream)
功能
- fputs()函数把str(字符串)指向的字符写到给出的输出流. 成功时返回非负值, 失败时返回EOF.
用法
char buf[128] = "abcdefg";
fputs(buf,stdout/*标准输出*/);//有换行 , 自动加换行符'\n', 将字符输出到终端
7.产生随机数
用法
//获取当前时间,单位是秒
int t = time(NULL);
//设置随机数种子
srand(t);
//-------------一般写法-------------//
srand(time(NULL));
//获得随机数
int a = rand();
8.exit(0)
- 不管出现在什么位置,只要执行到该函数,则会退出整个程序
9.sprintf(char*string,const char *format,…)
- sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中
10.#include <> 与 #include""
- <> 表示在系统目录下找.h文件
- “” 表示先在当前工程文件目录下找.h文件
11. .h头文件注意点
注意
- 在头文件中只声明,不要定义任何变量或者函数;
- 定义只在.c中定义
12.全局变量
- 定义在{}外的变量为全局变量,全局变量在这个工程中其它文件都可使用;
- 全局变量在程序运行结束时才销毁.