c 函数模块

          

1.    getchar (),  

a功能:从stdin流中读字符。

b用法:int  getchar(void);

c注:当调用getchar时,程序等待用户按键,用户输入的字符被放入到键盘缓冲区中,直到用户按回车为止,当用户输入回车后,getchar从stdin(标准输入键盘)流中每次读入一个字符,其返回指为用户输入的第一个字符的AscII码,出错返回-1;但不会回显到屏幕,而其他的字符保留在键盘缓存区,等待后续getchar调用读取。

2.    sscanf();

a功能:从一个字符串中读进与指定格式相符的数据。

b 用法:int sscanf(constchar *,constchar*…….);

c返回指:成功则返回参数数目,失败返回-1;例如d中应该返回1;

d举例: sscanf(af,"%4s",buff);af通过指定格式筛选到符合条件的保存到buff中

3.    fgets();

a 函数原形:char*fgets(char *buf,int bufsize,FILE *stream);参数介绍 *buf 字符型指针,指向用来存储所得数据的地方,bufsize 整形数据,指明存储数据的大小,*stream 文件结构体指针,将要读取的文件流. 

b 返回值:若成功则返回第一个参数buf,若失败则返回NULL;

c 功能:从文件结构体指针stream中读取数据,只读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋‘\0’),如果文件的该行,不总以bufsize个字符,则读完该行就结束,如果该行(包括换行符)超过bufsize-1个字符,则返回一个不完整的行。

d 例子,如果一个文件的当前位置的文本如下

love,I have

since you can do it

如果用fgets(str1,6,file1);则执行结果为str1 = “love“;读取5个字符,如果这个时候在执行fgets(str1,20

,file1)则执行后str1 = “I have\n”.    

而如果是fgets(str1,23,file1);则执行结果为str1 = “I love, I have”,读取一行(包括行尾的换行符和字符串结束符,虽然大于当前行,但不会换行到下一行。

4.     memset();

 用法:void *memset(void *s,charch,unsigned n);

 功能:将s所指向的某一块内存中的前n个字节的内容全部设置为ch指定的ascII的值.

头文件 #include <string.h>

5.    calloc()

用法:void *calloc(size_t n,size_tsize);

功能:在内存的动态存储区中分配n个长度为size的连续空间。

返回值:返回一个指向分配起始地址的指针;如果

不成功,则返回null;一般要使用free()进行内存释放

区别与malloc:calloc在动态分配后,自动初始化该内存空间为零,而malloc不初始化,里面数据是随机的垃圾数据。

6.    realloc()

用法 :#include <stdlib.h>有的编译器需要#include<dealloc.h>

extern void *realloc(void *mem_address,unsigned int newsize);

功能:改变mem_address所指内存区域的大小为newsize长度。

详细说明: realloc 是从堆上分配内存的,当扩大一块内存空间时,realloc()试图直接从堆上现存的数据后面的那些字节中获得附加的字节,如果能够满足,自然万事大吉,即如果原来的内存大小后面还有足够的空闲空间用来分配,加上原来的空间大小=newsize,则得到的是一块连续的内存。

但如果原先的空间大小后面没有足够的空闲空间用来分配,那么从堆中另外找一块newsize大小的内存,并把原来大小内存空间中的内容复制到newsize中,返回新的mem_address指针。(数据被移动了);然后释放原来所指的内存区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值