C语言游戏制作相关函数总结,慢慢总结C语言一些常用函数

fgets

头文件:    #include

函数原型:char *fgets(char *s, int size, FILE *stream);

返回值:    成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULL。

说明:        fgets从指定的文件中读一行字符到调用者提供的缓冲区中。

gets

头文件:    #include

函数原型:char *gets(char *s);

返回值:    成功时s指向哪返回的指针就指向哪,出错或者读到文件末尾时返回NULL。

说明:        gets从标准输入读一行字符到调用者提供的缓冲区中。

popen

头文件:    #include

函数原型:FILE * popen(const char *command , const char *type );

返回值:    如果调用fork()或pipe()失败,或者不能分配内存将返回NULL,否则返回标准I/O流。

popen()没有为内存分配失败设置errno值。

如果调用fork()或pipe()时出现错误errno被设为相应的错误类型。

如果type参数不合法,errno将返回EINVAL。

说明:        popen()函数通过创建一个管道,调用fork()产生一个子进程,

执行一个shell以运行命令来开启一个进程。

这个管道必须由pclose()函数关闭,而不是fclose()函数。

pclose()函数关闭标准I/O流,等待命令执行结束,然后返回shell的终止状态。

如果shell不能被执行,则pclose()返回的终止状态与shell已执行exit一样。

type参数只能是读或写中的一种,得到的返回值(标准I/O流)也具有和type相应的只读或只写类型。

如果type是"r"则文件指针连接到command的标准输出;

如果type是"w"则文件指针连接到command的标准输入。

command参数是一个指向以NULL结束的shell命令字符串的指针。

这行命令将被传到bin/sh并使用-c标志,shell将执行这个命令。

popen()的返回值是个标准I/O流,必须由pclose终止。而这个流是单向的(只能用于读或写)。

向这个流写内容相当于写入该命令的标准输入,命令的标准输出 和调用popen()的进程相同;

与之相反的,从流中读数据相当于读取命令的标准输出,命令的标准输入和调用popen()的进程相同。

pclose

头文件:    #include

函数原型:int pclose(FILE *stream);

返回值:    若成功返回shell的终止状态(也即子进程的终止状态),若出错返回-1,错误原因存于errno中。

说明:        见"popen"说明。

strlen

头文件:    #include

函数原型:extern int strlen(char *s);

返回值:    返回s的长度,不包括结束符NULL。

说明:        计算字符串s的(unsigned int型)长度。

atof

头文件:    #include

函数原型:double atof(const char* str);

返回值:    返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。

说明:        atof() 的名字来源于 ascii to floating point numbers 的缩写,它会扫描参数str字符串,

跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),

直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束'\0'才结束转换,

并将结果返回。

参数str 字符串可包含正负号、小数点或E(e)来表示指数部分, 如123. 456 或123e-2。

atoi

头文件:    #include

函数原型:int atoi(const char *nptr);

返回值:    返回整型数。否则,返回零。

说明:        数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,

之后检测到非数字(包括结束符 \0) 字符时停止转换。

memcpy

头文件:    #include

函数原型:extern void *memcpy(void *dest, void *src, unsigned int count);

返回值:    函数返回指向dest的指针。

说明:        由src所指内存区域复制count个字节到dest所指内存区域,src和dest所指内存区域不能重叠。

memset

头文件:    #include

函数原型:extern void *memset(void *buffer, int c, int count);

返回值:    其返回值为指向buffer的指针。

说明:        把buffer所指内存区域的前count个字节设置成字符c,

它是对较大的结构体或数组进行清零操作的一种最快方法。

sprintf

头文件:#include

函数原型:int sprintf(char *buffer, const char *format [, argument] … );

返回值:字符串长度 strlen。

说明:把格式化的数据写入某个字符串,注意可变参数的使用。

strchr

头文件:    #include

函数原型:extern char *strchr(char *str,char character);

返回值:    返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。

说明:        从字符串str中寻找字符character第一次出现的位置,

str为一个字符串的指针,character为一个待查找字符。

scanf

头文件:    #include

函数原型:int scanf(char *format[,argument,...]);

返回值:    scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

说明:        scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。

可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

其调用格式为: scanf("",);

其控制串由三类字符构成:

1。格式化说明符;

2。空白符;

3。非空白符;

(A)格式化说明符

格式字符           说明

%a                 读入一个浮点值(仅C99有效)

%A                 同上

%c                 读入一个字符

%d                 读入十进制整数

%i                  读入十进制,八进制,十六进制整数

%o                 读入八进制整数

%x                 读入十六进制整数

%X                同上

%c                 读入一个字符

%s                 读入一个字符串

%f                  读入一个浮点数

%F                 同上

%e                 同上

%E                 同上

%g                 同上

%G                 同上

%p                 读入一个指针

%u                 读入一个无符号十进制整数

%n                 至此已读入值的等价字符数

%[]                 扫描字符集合

%%                读%符号

附加格式说明字符表

修饰符                            说明

L/l 长度修饰符               输入"长"数据

h 长度修饰符                 输入"短"数据

W 整型常数                   指定输入数据所占宽度

* 星号                             空读一个数据

hh,ll同上h,l但仅对C99有效。

(B)空白字符

空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,

空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。

(C)非空白字符

一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

sscanf

头文件:    #include

函数原型:int sscanf(const char *buffer,const char *format,[argument ]...);

返回值:    失败返回0 ,否则返回格式化的参数个数。

说明:        sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。

第二个参数可以是一个或多个 {%[*] [width] [{h | I | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}。

注:

1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入,

也就是不把此数据读入参数中。

2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。

3、width表示读取宽度。

4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,

L表示4字节size(double例外),l64表示8字节size。

5、type :这就很多了,就是%s,%d之类。

6、特别的:%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,

不会向目标参数中写入值。

如:

sscanf("123456 abcdedf", "%[^ ]", buf);

printf("%s/n", buf);

结果为:123456

isspace

头文件:    #include

函数原型:extern int isspace(int c);

返回值:    当c为空白符时,返回非零值,否则返回零。

空白符指空格、水平制表、垂直制表、换页、回车和换行符。 说明:        判断字符c是否为空白符。

strcmp

头文件:    #include

函数原型:int strcmp(const char *s1, const char *s2);

返回值:    若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。

s1 若小于s2 则返回小于0 的值。

说明:        s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。

strcmp()首先将s1 第一个字符值减去s2 第一个字符值,

若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。

strcoll

头文件:    #include

函数原型:int strcoll( const char * str1, const char * str2 );

返回值:    若字符串 str1 和 str2 相同则返回0。若 str1 大于 str2 则返回大于 0 的值,否则返回小于 0 的值。

说明:        strcoll() 会依环境变量 LC_COLLATE 所指定的文字排列次序来比较 s1 和 s2 字符串。

默认情况下,LC_COLLATE 为"POSIX"或"C",strcoll() 和 strcmp() 一样根据ASCII 比较字符串大小。

对于设置了 LC_COLLATE 语言环境的情况下,

则根据 LC_COLLATE 设置的语言排序方式进行比较, 例如,汉字会根据拼音进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值