c语言函数手册?c语言函数大全及详解
大家好,今天小编来为大家解答以下的问题,关于c语言函数手册,c语言函数大全及详解这个很多人还不知道,现在让我们一起来看看吧!
C语言函数参考手册的前言
C语言作为当前程序开发中最流行的编程语言之一,以其简单、高效、快捷、方便的特性吸引了大批用户。根据笔者使用C语言的经验,相信对C语言程序开发人员来说,C语言函数参考手册是必需的。因此,笔者编写了本书,希望能真正帮助C语言程序开发人员在编程时实现易查、易学、易用,并使其成为程序开发必备的工具书。
本书内容
本书按照C语言库函数的头文件进行分类,每个头文件为一章内容,分别介绍了对应头文件中常用的C语言函数。对每个头文件中的函数按照字母进行排序,其中每个函数都按照功能、语法来介绍,在每个方法后都有相关的示例。
本书特点
*即查、即学、即用
本书将查、学、用结合为一体,读者能够使用本书进行快速查询和快速应用,既是实用的工具书,也是学习的参考书。
*字母排序,快捷搜索
本书在讲解C语言函数时按照头文件进行分类,用户在使用时可以根据头文件快速地缩小查找范围,并且每个头文件以字母顺序进行排序,以便读者更快、更准确地查找相关内容。
*内容全面,示例丰富
本书内容涵盖了学习C语言应用的各方面技术。为了便于读者快速掌握每个知识点,每个知识点都给出对应的一个或多个示例,并提供了详尽的注释。
*精彩栏目,贴心提醒
本书根据需要在各章使用了“注意”、“说明”和“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
本书配套资源
本书提供了内容丰富的配套资源,包括源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。
第1种方式:
(1)登录清华大学出版社的网站,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。
(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。
第2种方式:
访问本书的新浪微博:C语言图书,找到配套资源的链接地址进行下载。
读者对象
本书适合以下人群阅读。
?初学编程的自学者?编程爱好者
?大中专院校的老师和学生?相关培训机构的老师和学员
?初、中级程序开发人员?程序测试及维护人员
?参加实习的程序员
那么多的C语言函数,怎么学啊,给个建议。
学习任何知识,循序渐进总是最好的方式。不幸的是,很多人明知这个道理,却总是想走所谓的捷径。如果你是一个刚刚开始学习编程的中学生,或者你是一个刚刚进入计算机学院的本科生,又或者你是一个决心在计算机领域有所建树的初学者,你一定迫切地想知道,学习计算机技术,究竟应该从哪里下手。
我的建议是:数学、英语、C语言。
数学和英语的重要性已经不需要我来强调,大家也许从幼儿园就开始学习它们了,请时刻把它们放在最重要的位置,无论你是否学习计算机。
为什么C语言如此重要?我们从学习方法开始说起。书本上描述的东西,倘若不经过我们的亲自实践,是难以被彻底消化吸收的。计算机组成原理讲解了浮点数的格式,如果我们能看到并分析内存或寄存器中某个浮点数的表示,那比单纯的纸上谈兵要强一千倍;数据结构与算法似乎很难,如果你能把书上的例子实现出来,然后把习题做完,只需啃完一本好书,你也可以是算法高手;操作系统原理其实不仅仅是原理,只有做一些内核方面的实验才能真正有深刻理解;还有许多新潮的技术,比如JavaEE、PHP、Ajax、.NET等等等等,很多高手学习这些技术只需要很短的时间,不必说,他们肯定是C语言的高手。C语言几乎是一切计算机技术的通用工具,包括计算机的各种基本理论。没有精通C语言的决心,就不要涉足计算机领域。
为什么是C语言而不是C++不是Java不是其它?因为C语言最简单。你需要掌握一个语言工具,但也许并不需要“面向对象”、“模板”、“函数重载”等等一大堆概念。C语言足够低级,非常非常地贴近计算机的底层结构,不会让你迷失在概念的汪洋大海。除了“指针”,C语言没有真正意义上的难点,而“指针”,恰恰是理解计算机底层结构精髓的关键所在。
不必思考应该学什么,等把C语言精通了,你自己便会知道下一步如何去走。如果你对操作系统内部感兴趣,你便可以试着研究一下Unix的内核,除了C语言,你还需要一些汇编语言和保护模式的知识;如果你对算法感兴趣,那么恭喜你,C语言足够使用了;如果你对Windows编程感兴趣,去看看《Windows程序设计》吧,作者清楚的告诉你“只需要C语言的基础”;如果你对任何其它语言感兴趣,尽管去学吧,不过还是建议先学C++,因为你需要一些“面向对象”的知识。
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。
一、要读就读好书,否则不如不读
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)
Kernighan和Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。
如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。
切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
求C语言所有的简单函数!
库函数并不是C语言的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSIC标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本书列出Turbo C 2.0版提供的部分常用库函数。
由于Turbo C库函数的种类和数目很多(例如:还有屏幕和图形函数、时间日期函数、与本系统有关的函数等,每一类函数又包括各种功能的函数),限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。读者在编制c程序时可能要用到更多的函数,请查阅有关的Turbo C库函数手册。
(1)数学函数
使用数学函数时,应该在源文件中使用命令:
#include″math.h″
函数名函数与形参类型功能返回值
acos double acos(x)
double x计算cos-1(x)的值
-1<=x<=1计算结果
asin double asin(x)
double x计算sin-1(x)的值
-1<=x<=1计算结果
atan double atan(x)
double x计算tan-1(x)的值计算结果
atan2 double atan2(x,y)
double x,y计算tan-1(x/y)的值计算结果
cos double cos(x)
double x计算cos(x)的值
x的单位为弧度计算结果
cosh double cosh(x)
double x计算x的双曲余弦cosh(x)的值计算结果
exp double exp(x)
double x求ex的值计算结果
fabs double fabs(x)
double x求x的绝对值计算结果
floor double floor(x)
double x求出不大于x的最大整数该整数的双精度实数
fmod double fmod(x,y)
double x,y求整除x/y的余数返回余数的双精度实数
frexp double frexp(val,eptr)
double val
int*eptr把双精度数val分解成数字部分(尾数)和以2为底的指数,即val=x*2n,n存放在eptr指向的变量中数字部分x
0.5<=x<1
log double log(x)
double x求logex即lnx计算结果
log10 double log10(x)
double x求log10x计算结果
modf double modf(val,iptr)
double val
int*iptr把双精度数val分解成数字部分和小数部分,把整数部分存放在ptr指向的变量中 val的小数部分
pow double pow(x,y)
double x,y求xy的值计算结果
sin double sin(x)
double x求sin(x)的值
x的单位为弧度计算结果
sinh double sinh(x)
double x计算x的双曲正弦函数sinh(x)的值计算结果
sqrt double sqrt(x)
double x计算√x,x≧0计算结果
tan double tan(x)
double x计算tan(x)的值
x的单位为弧度计算结果
tanh double tanh(x)
double x计算x的双曲正切函数tanh(x)的值计算结果
------------------------------------------------------------------------------------------------------------------------------
(2)字符函数
在使用字符函数时,因该在源文件中使用命令:
#include“ctype.h”
函数名函数和形参类型功能返回值
isalnum int isalnum(ch)
int ch检查ch是否字母或数字是字母或数字返回1;否则返回0
isalpha int isalpha(ch)
int ch检查ch是否字母是字母返回1;否则返回0
iscntrl int iscntrl(ch)
int ch检查ch是否控制字符(其ASCⅡ码在0和0xlF之间)是控制字符返回1;否则返回0
isdigit int isdigit(ch)
int ch检查ch是否数字是数字返回1;否则返回0
isgraph int isgraph(ch)
int ch检查ch是否是可打印字符(其ASCⅡ码在0x21和0x7e之间),不包括空格是可打印字符返回1;否则返回0
islower int islower(ch)
int ch检查ch是否是小写字母
(a~z)是小字母返回1;否则返回0
isprint int isprint(ch)
int ch检查ch是否是可打印字符(其ASCⅡ码在0x21和0x7e之间),不包括空格是可打印字符返回1;否则返回0
ispunct int ispunct(ch)
int ch检查ch是否是标点字符(不包括空格)即除字母、数字和空格以外的所有可打印字符是标点返回1;否则返回0
isspace int isspace(ch)
int ch检查ch是否空格、跳格符(制表符)或换行符是,返回1;否则返回0
issupper int isalsupper(ch)
int ch检查ch是否大写字母
(A~Z)是大写字母返回1;否则返回0
isxdigit int isxdigit(ch)
int ch检查ch是否一个16进制数字
(即0~9,或A到F,a~f)是,返回1;否则返回0
tolower int tolower(ch)
int ch将ch字符转换为小写字母返回ch对应的小写字母
toupper int toupper(ch)
int ch将ch字符转换为大写字母返回ch对应的大写字母
-----------------------------------------------------------------------------------------------------------------------
(3)字符串函数
使用字符串中函数时,应该在源文件中使用命令:
#include“string.h”
函数名函数和形参类型功能返回值
memchr void memchr(buf,ch,count)
void*buf;charch;
unsigned int count;在buf的前count个字符里搜索字符ch首次出现的位置返回指向buf中ch的第一次出现的位置指针;若没有找到ch,返回NULL
memcmp int memcmp(buf1,buf2,count)
void*buf1,*buf2;
unsigned int count;按字典顺序比较由buf1和buf2指向的数组的前count个字符 buf1<buf2,为负数
buf1=buf2,返回0
buf1>buf2,为正数
memcpy void*memcpy(to,from,count)
void*to,*from;
unsigned int count;将from指向的数组中的前count个字符拷贝到to指向的数组中。From和to指向的数组不允许重叠返回指向to的指针
memove void*memove(to,from,count)
void*to,*from;
unsigned int count;将from指向的数组中的前count个字符拷贝到to指向的数组中。From和to指向的数组不允许重叠返回指向to的指针
memset void*memset(buf,ch,count)
void*buf;char ch;
unsigned int count;将字符ch拷贝到buf指向的数组前count个字符中。返回buf
strcat char*strcat(str1,str2)
char*str1,*str2;把字符str2接到str1后面,取消原来str1最后面的串结束符`\0`返回str1
strchr char*strchr(str1,ch)
char*str;
int ch;找出str指向的字符串中第一次出现字符ch的位置返回指向该位置的指针,如找不到,则应返回NULL
strcmp int*strcmp(str1,str2)
char*str1,*str2;比较字符串str1和str2 str1<str2,为负数
str1=str2,返回0
str1>str2,为正数
strcpy char*strcpy(str1,str2)
char*str1,*str2;把str2指向的字符串拷贝到str1中去返回str1
strlen unsigned intstrlen(str)
char*str;统计字符串str中字符的个数(不包括终止符`\0`)返回字符个数
strncat char*strncat(str1,str2,count)
char*str1,*str2;
unsigned int count;把字符串str2指向的字符串中最多count个字符连到串str1后面,并以null结尾返回str1
strncmp int strncmp(str1,str2,count)
char*str1,*str2;
unsigned int count;比较字符串str1和str2中至多前count个字符 str1<str2,为负数
str1=str2,返回0
str1>str2,为正数
strncpy char*strncpy(str1,str2,count)
char*str1,*str2;
unsigned int count;把str2指向的字符串中最多前count个字符拷贝到串str1中去返回str1
strnset void*setnset(buf,ch,count)
char*buf;char ch;
unsigned int count;将字符ch拷贝到buf指向的数组前count个字符中。返回buf
strset void*setnset(buf,ch)
void*buf;char ch;将buf所指向的字符串中的全部字符都变为字符ch返回buf
strstr char*strstr(str1,str2)
char*str1,*str2;寻找str2指向的字符串在str1指向的字符串中首次出现的位置返回str2指向的字符串首次出向的地址。否则返回NULL
-----------------------------------------------------------------------------------------------------------------------------
(4)输入输出函数
在使用输入输出函数时,应该在源文件中使用命令:
#include“stdio.h”
函数名函数和形参类型功能返回值
clearerr void clearer(fp)
FILE*fp清除文件指针错误指示器无
close int close(fp)
int fp关闭文件(非ANSI标准)关闭成功返回0,不成功返回-1
creat int creat(filename,mode)
char*filename;
int mode以mode所指定的方式建立文件。(非ANSI标准)成功返回正数,
否则返回-1
eof int eof(fp)
int fp判断fp所指的文件是否结束文件结束返回1,
否则返回0
fclose int fclose(fp)
FILE*fp关闭fp所指的文件,释放文件缓冲区关闭成功返回0,不成功返回非0
feof int feof(fp)
FILE*fp检查文件是否结束文件结束返回非0,否则返回0
ferror int ferror(fp)
FILE*fp测试fp所指的文件是否有错误无错返回0;
否则返回非0
fflush int fflush(fp)
FILE*fp将fp所指的文件的全部控制信息和数据存盘存盘正确返回0;
否则返回非0
fgets char*fgets(buf,n,fp) char*buf;int n;
FILE*fp从fp所指的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间返回地址buf;若遇文件结束或出错则返回EOF
fgetc int fgetc(fp)
FILE*fp从fp所指的文件中取得下一个字符返回所得到的字符;出错返回EOF
fopen FILE*fopen(filename,mode)
char*filename,*mode以mode指定的方式打开名为filename的文件成功,则返回一个文件指针;否则返回0
fprintf int fprintf(fp,format,args,…)
FILE*fp;char*format把args的值以format指定的格式输出到fp所指的文件中实际输出的字符数
fputc int fputc(ch,fp)
char ch;FILE*fp将字符ch输出到fp所指的文件中成功则返回该字符;出错返回EOF
fputs int fputs(str,fp)
char str;FILE*fp将str指定的字符串输出到fp所指的文件中成功则返回0;出错返回EOF
fread int fread(pt,size,n,fp) char*pt;unsigned size,n;FILE*fp从fp所指定文件中读取长度为size的n个数据项,存到pt所指向的内存区返回所读的数据项个数,若文件结束或出错返回0
fscanf int fscanf(fp,format,args,…)
FILE*fp;char*format从fp指定的文件中按给定的format格式将读入的数据送到args所指向的内存变量中(args是指针)以输入的数据个数
fseek int fseek(fp,offset,base)
FILE*fp;long offset;int base将fp指定的文件的位置指针移到base所指出的位置为基准、以offset为位移量的位置返回当前位置;否则,返回-1
siell FILE*fp;
long ftell(fp);返回fp所指定的文件中的读写位置返回文件中的读写位置;否则,返回0
fwrite int fwrite(ptr,size,n,fp) char*ptr;unsigned size,n;FILE*fp把ptr所指向的n*size个字节输出到fp所指向的文件中写到fp文件中的数据项的个数
getc int getc(fp)
FILE*fp;从fp所指向的文件中的读出下一个字符返回读出的字符;若文件出错或结束返回EOF
getchar int getchat()从标准输入设备中读取下一个字符返回字符;若文件出错或结束返回-1
gets char*gets(str)
char*str从标准输入设备中读取字符串存入str指向的数组成功返回str,否则返回NULL
open int open(filename,mode) char*filename;
int mode以mode指定的方式打开已存在的名为filename的文件
(非ANSI标准)返回文件号(正数);如打开失败返回-1
printf int printf(format,args,
…)
char*format在format指定的字符串的控制下,将输出列表args的指输出到标准设备输出字符的个数;若出错返回负数
prtc int prtc(ch,fp)
int ch;FILE*fp;把一个字符ch输出到fp所值的文件中输出字符ch;若出错返回EOF
putchar int putchar(ch)
char ch;把字符ch输出到fp标准输出设备返回换行符;若失败返回EOF
puts int puts(str)
char*str;把str指向的字符串输出到标准输出设备;将`\0`转换为回车行返回换行符;若失败返回EOF
putw int putw(w,fp)
int i;
FILE*fp;将一个整数i(即一个字)写到fp所指的文件中
(非ANSI标准)返回读出的字符;若文件出错或结束返回EOF
read int read(fd,buf,count) int fd;char*buf;
unsigned int count;从文件号fp所指定文件中读count个字节到由buf知识的缓冲区(非ANSI标准)返回真正读出的字节个数,如文件结束返回0,出错返回-1
remove int remove(fname)
char*fname;删除以fname为文件名的文件成功返回0;出错返回-1
rename int remove(oname,nname)
char*oname,*nname;把oname所指的文件名改为由nname所指的文件名成功返回0;出错返回-1
rewind void rewind(fp)
FILE*fp;将fp指定的文件指针置于文件头,并清除文件结束标志和错误标志无
scanf int scanf(format,args,
…)
char*format从标准输入设备按format指示的格式字符串规定的格式,输入数据给args所指示的单元。args为指针读入并赋给args数据个数。如文件结束返回EOF;若出错返回0
write int write(fd,buf,count) int fd;char*buf;
unsigned count;丛buf指示的缓冲区输出count个字符到fd所指的文件中(非ANSI标准)返回实际写入的字节数,如出错返回-1
------------------------------------------------------------------------------------------------------------------------------
(5)动态存储分配函数
在使用动态存储分配函数时,应该在源文件中使用命令:
#include“stdlib.h”
函数名函数和形参类型功能返回值
callloc void*calloc(n,size)
unsigned n;
unsigned size;分配n个数据项的内存连续空间,每个数据项的大小为size分配内存单元的起始地址。如不成功,返回0
free void free(p)
void*p;释放p所指内存区无
malloc void*malloc(size)
unsigned SIZE;分配size字节的内存区所分配的内存区地址,如内存不够,返回0
realloc void*reallod(p,size)
void*p;
unsigned size;将p所指的以分配的内存区的大小改为size。Size可以比原来分配的空间大或小返回指向该内存区的指针。若重新分配失败,返回NULL
-------------------------------------------------------------------------------------------------------------------------------
(6)其他函数
“其他函数”是C语言的标准库函数,由于不便归入某一类,所以单独列出。使用这写函数时,应该在源文件中使用命令:
#include“stdlib.h”
函数名函数和形参类型功能返回值
abs int abs(num)
int num计算整数num的绝对值返回计算结果
atof double atof(str)
char*str将str指向的字符串转换为一个double型的值返回双精度计算结果
atoi int atoi(str)
char*str将str指向的字符串转换为一个int型的值返回转换结果
atol long atol(str)
char*str将str指向的字符串转换为一个long型的值返回转换结果
exit void exit(status)
int status;中止程序运行。将status的值返回调用的过程无
itoa char*itoa(n,str,radix)
int n,radix;
char*str将整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串中返回一个指向str的指针
labs long labs(num)
long num计算c整数num的绝对值返回计算结果
ltoa char*ltoa(n,str,radix)
long int n;int radix;
char*str;将长整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串返回一个指向str的指针
rand int rand()产生0到RAND_MAX之间的伪随机数。RAND_MAX在头文件中定义返回一个伪随机(整)数
random int random(num)
int num;产生0到num之间的随机数。返回一个随机(整)数
rand_omize void randomize()初始化随机函数,使用是包括头文件time.h。
strtod double strtod(start,end)
char*start;
char**end将start指向的数字字符串转换成double,直到出现不能转换为浮点的字符为止,剩余的字符串符给指针end
*HUGE_VAL是turboC在头文件math.H中定义的数学函数溢出标志值返回转换结果。若为转换则返回0。若转换出错返回HUGE_VAL表示上溢,或返回-HUGE_VAL表示下溢
strtol Long int strtol(start,end,radix)
char*start;
char**end;
int radix;将start指向的数字字符串转换成long,直到出现不能转换为长整形数的字符为止,剩余的字符串符给指针end。
转换时,数字的进制由radix
确定。
*LONG_MAX是turboC在头文件limits.h中定义的long型可表示的最大值返回转换结果。若为转换则返回0。若转换出错返回LONG_MAX表示上溢,或返回-LONG_MAX表示下溢
system int system(str)
char*str;将str指向的字符串作为命令传递给DOS的命令处理器返回所执行命令的退出状态
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!