C和C++函数集一览表

C和C++函数集一览表
C和C++函数集一览表

第1章数学函数

1.1_chgsign——求参数的相反数

1.2_copysign——复制数据

1.3_hypot——求直角三角形斜边长度

1.4_max——求两个数中的大数

1.5_min——求两个数中的小数

1.6_scalb——求参数的(2^exp)倍数

1.7abs——求整数的绝对值

1.8acos——求反余弦

1.9asin——求反正弦

1.10atan——求反正切

1.11atan2——求x/y的反正切值

1.12ceil——求不小于x的最小整数

1.13cos——求余弦的函数

1.14cosh——求双曲余弦的函数

1.15div——求两个数的商和余数

1.16exp——求双精度数的指数函数值

1.17fabs——求双精度数的绝对值

1.18floor——求不大于x的最大整数

1.19fmod——求x/y的余数

1.20frexp——把参数x调整到0.5~1之间

1.21labs——求长整型参数的绝对值

1.22ldexp——求参数的(2^exp)倍数

1.23ldiv——求两个长整型数相除的商和余数

1.24log——自然对数

1.25log10——求以10为底的对数

1.26modf——求双精度数的小数部分

1.27pow——求x的y次方的值

第2章字符函数和字符串函数

2.1__isascii——ASCII码是否在0~127之间

2.2__iscsym——是否为大、小写字母,下划线或字符0~9

2.3_strdup——将字符串存入内存中

2.4_stricmp——比较两个字符串

2.5_strlwr——大写字母转换成小写字母

2.6_strnicmp——比较特定长度的字符串

2.7_strnset——把特定长度的字符设定成某个特定字符

2.8_strrev——将字符串倒序排列

2.9_strset——把字符设定成某个特定字符

2.10_strupr——小写字母转换成大写字母

2.11__toascii——将字符转换成ASCII码

2.12isalnum——是否为大小写字母或数字0~9

2.13isalpha——是否为大小写字母

2.14iscntrl——是否为控制字符

2.15isdigit——是否为字符0~9

2.16isgraph——ASCII码是否在33~126之间

2.17islower——是否为小写字母

2.18isprint——ASCII码是否在32~126之间

2.19isspace——是否为空格、制表符或换行符

2.20isupper——是否为大写字母

2.21strcat——字符串连接函数

2.22strchr——找出给定字符串里的特定字符

2.23strcmp——对两个字符串进行比较

2.24strcpy——对字符串进行复制

2.25strcspn——查找第一个是另一个字符串中的字符位置

2.26strlen——求字符串的长度

2.27strncat——特定数目的字符串连接到另一个字符串

2.28strncmp——比较特定长度的字符串

2.29strncpy——复制特定长度字符串到另一个字符串中

2.30strpbrk——从第一个是另一个字符串中字符开始输出

2.31strrchr——找出字符在字符串中最后出现的位置

2.32strspn——查找第一个不是另一个字符串中字符位置

2.33strstr——获得第一次包含另一字符串的位置指针

2.34strtok——根据字符串中的字符截断另一个字符串

2.35strxfrm——把特定长度的字符串转换给另一个字符串

2.36tolower——大写字符转换为小写字符

2.37toupper——小写字符转换为大写字符

第3章时间日期函数

3.1 _ftime——读取当前时间

3.2 _strdate——将当前日期格式化写入字符串

3.3 _strtime——将当前时间格式化写入字符串

3.4 _asctime——以字符串显示时间

3.5 clock——当前程序所使用的处理时间

3.6 ctime——将time_t型转化为字符型

3.7 difftime——求两次系统时间差

3.8 gmtime——以tm结构表示的时间

3.9 localtime——以tm结构表示的时间

3.10 mktime——改变tm结构变量改变时间

3.11 strftime——将tm结构类型时间格式化写入字符串

3.12 time——获得时间

第4章类型转换函数

4.1 _ecvt——将浮点数转换成字符串

4.2 _fcvt——将浮点数转换成字符串

4.3 _itoa——将整型数转换成字符串

4.4 _ltoa——将长整型数转换成字符串

4.5 _utoa——将无符号长整型数转换成字符串

4.6 atof——将字符串转换成双精度数

4.7 atoi

4.8 atol

4.9 strtod——将字符串转换为双精度数

4.10 strtol

4.11 strtoul

第5章文件目录操作函数

5.1 _chdir——改变当前的工作目录

5.2 _findclose——关闭句柄,释放资源

5.3 _findfirst——搜索第一个文件

5.4 _findnext——搜索下一个文件

5.5 _getcwd——获得当前路径名

5.6 _mkdir——创建指定名称的目录

5.7 _mktemp——创建惟一的文件名

5.8 _rmdir——删除目录

5.9 _searchenv——搜索文件路径

5.10 _tempnam——生成上临时文件名

第6章内存操作函数

6.1 _alloca——在堆栈上分配内存空间

6.2 _expand——改变内存区域的字节数

6.3 _heapadd——把内存区域添加到堆中6.4 _heapchk——检查堆的连续性

6.5 _heapmin——释放没有使用的堆空间6.7 _heapwalk——返回堆中下一个项目信息6.8 _msize——返回堆中内存区域的字节长度6.9 calloc——在内存中取得一块数组空间6.10 free——释放内存区块

6.11 malloc——获取内存区块

6.12 realloc——重新分配内存

第7章输入/输出函数

7.1 _access——检查文件状态

7.2 _chmod——改变文件访问模式

7.3 _creat——创建文件

7.4 _eof——文件指针是否在结尾

7.5 _fcloseall——关闭所有文件

7.6 _filelength——获得文件长度

7.7 _getw——从文件流中读取一个整数

7.8 _putw——将一个整数写入文件流中

7.9 _fclose——关闭文件

7.10 _feof——文件是否在结尾

7.11 _ferror——文件流是否有错误

7.12 fflush——将缓冲区内容写入文件

7.13 fgetc——从文件流读出一个字符

7.14 fgets——从文件流中读出一行字符

7.15 fopen——打开文件

7.16 fprintf——向文件流定稿格式化数据

7.17 fputs——向文件流写入一个字符串

7.18 fread——从文件流读取数据

7.19 freopen——为文件指针重新分配文件7.20 fscanf——从文件流中读取格式化数据7.21 fseek——设置文件操作指示器位置

7.22 ftell——获取文件操作指示器位置

7.23 fwrite——向文件流写入数据

7.24 getc——从文件流读出一个字符

7.25 getchar——从输入流读取一个字符

7.26 gets——从输入流读出一行字符

7.27 printf——将格式化数据写入标准输出流7.28 putc——将一个字符写入文件流中

7.29 putchar——将一个字符写入输出流中7.30 puts——将字符串写入输出流中

7.31 rewind——将文件指针移动到起始位置7.32 scanf——从输入流读出格式化数据

7.33 sprintf——向字符串中写入格式化数据7.34 sscanf——从字符串中读出格式化数据

C语言课程设计报告 - 字符串处理

课程设计报告 课程设计题目:研究生初试录取 学生姓名:李俊 专业:计算机应用技术 班级: 1140302 指导教师:宋文琳 2012年 06 月 23日

目录 一)实验题目 (3) 二)实验目的 (3) 三)实验要求 (3) 四)实验思路 (4) 五)实验过程 (6) 六)实验调试和结果 (9) 七)实验小结 (13)

实验题目 字符串处理 (1)不使用系统库函数,编写多个函数实现; (2)定义字符数组存放字符串,从键盘输入; (3)调用不同的函数,实现字符串的连接、拷贝、比较、求字符串长度、对字符串内字符进行排序、查找字符串中某个字符是否存在; (4)分别输出以上字符串处理的结果。 二)实验目的 本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关内容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。三)实验要求 1. 学生独立完成课程设计的主要内容; 2. 按照实验课表安排进行,不得无故旷课; 3.按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据 个人兴趣选做其它题目; 4.严格按照报告格式撰写课程设计报告; 5.程序实现方式可以自选,可采用指针、数组或其任意组合方式完成。

四)实验思路1)整体思路

五)实验过程 代码: #include void main() {void lianjie(char a[],char b[]); void kaobei(char a[],char b[]); void bijiao(char a[],char b[]); void qiuchangdu(char a[],char b[]); void paixu(char a[],char b[]); void chazhao(char a[],char b[],char c); char str1[50],str2[40]; char t; int i; printf("需要进行的操作:1.连接;2.拷贝;3.比较;4.求长度;5.排序;6.查找\n"); scanf("%d",&i); if(i==1) {printf("要连接的字符串1:"); scanf("%s",str1); printf("要连接的字符串2:"); scanf("%s",str2); lianjie(str1,str2);} else if(i==2) {printf("拷贝的字符串1:"); scanf("%s",str1); printf("要拷贝的字符串2:"); scanf("%s",str2); kaobei(str1,str2);} else if(i==3)

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言函数知识详解

函数<一> 第一节函数的定义和返回值 一、库函数 1、一个C语言源程序无论包含了多少函数,C程序总是从main 开始执行。 2、调用C语言标准库函数时要求的include命令。 1)用户在源程序include命令中应该包含头文件: #include include命令必须用#开头,系统提供的头文件以.h作为文件的后缀,文件名用””或<>括起来, 2)include命令不是C语句,因此不能在最后加分号。 3、标准库函数的调用: 1)一般调用形式为:函数名(参数表) scanf(“%d”,&a);printf(“%d”,a); putchar(ch);ch=getchar(); 2)库函数的调用可以两种形式出现: 1出现在表达式中: 例:y=pow(x,2,5)+1.3 2作为独立语句完成某程操作: 例:printf(“********\n”); 常用函数: 数学函数:调用数学函数时,要求在源文件中包含以下命令行:

#include“math.h” 例:int abs(int x)double cos(double x) 字符函数和字符串函数 调用字符函数时,要求在源文件中包含头文件”ctype.h”;调用字符串 函数时,要求在源文件 中包含头文件”string.h” 如调用:int isalpha(int ch)检查ch是否为字母。 输入输出函数:调用输入输出函数时,要求在源文件中包含头文件”stdio.h” 例:调用:putchar getchar gets puts 二、函数的定义和返回值 1、函数定义的语法 函数首部(main()) 函数1 C 语定义说明部分 言 程函数体 序 执行语句部分

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

C语言函数大全(p开头).docx

函数大全(p开头) 61 函数名:parsfnm 功能:分析文件名 用法:char *parsfnm (char *cmdline, struct fcb *fcbptr, int option); 程序例: #include #include #include #include int main(void) { char line[80]; struct fcb blk; /* get file name */ printf(M Enter drive and file name (no path - ie. a:file.dat)\n M); gets(line); /* put file name in fcb */ if (parsfnm(line, &blk, 1) == NULL) printf(M Error in parsfm call\n H); else printf("Drive #%d Name: %1 ls\n", blk.fcb_drive, blk.fcb_name); return 0; 函数名:peek 功能:检查存储单元 用法:int peek(int segment, unsigned offset); 程序例: #include #include #include int main(void) int value = 0;

prinif(=The current sUHus of your keyboard is,n=); value H Peek(oxoo4p0x0017) 八 if (value 1) P S-二 f(--Right shift onm=)八 else printaRight shift 05n =) 八 if (value 2) primf(=Lefr shift onvr.r else prin-fTLen shift O 51T ); if (value &. 4) printf(=con=rol key on\n=)_ else p r i n .s =c o =r o 】 key off\n=)八 if (value Rp 8) printf(=Alr key on\n=)一 else p r i n s ->-t key 03=)

C语言中处理字符串的各种自定义函数(精)

C 语言中处理字符串的各种自定义函数 关于 strcpy,strcmp,strcat,strlen 的自定义函数,它是为了避免调用库函数对代码兼容的局限性。要注意如下一些问题: 1. 检查输入的两个指针是否有效; 2. 检查两个字符串是否以 NULL 结尾; 3. 检查目标指针的空间是否大于等于原字符串的空间。 一. strcpy 自定义 char * sef_strcpy(char *str1,char *str2 { If( (NULL==str1||(NULL==str2 { printf(“ invalid argument(s” ; return; } char *strcopy=str1; while(… \0? != *str1++=*str2++ ; *str1=? \0? ; return strcopy;

} 二. strcmp 的自定义 int sef_strcpy(char *str1,char *str2 { If( (NULL==str1||(NULL==str2 { printf(“ 输入参数错误,值为 NULL ! \n” ; return -1; } while(*str1&&*str2&&( *str1++==*str2++ ; return str1-str2; } 三. strcat 的自定义 char * sef_strcat(char *str1,char *str2 { If( (NULL==str1||(NULL==str2 { printf(“ 输入参数错误! ” ;

return; } char *strcopy=str1; while(… \0? !=*str1 {str++;} while(… \0? != (*str1++=*str2++ ; *str1=? \0? ; return strcopy; } 四. strlen 的自定义函数 int sef_strlen(char *str { if(NULL==str { printf(“ 输入参数错误,值为NULL ! ” ; char *p=str; while(… \0? !=*str++ ; return str-p-1;

C函数编程道习题汇总含其详细程序解答

C函数编程道习题汇总 含其详细程序解答 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

第1题: 编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25 样例输出:5 75 #include<> int gys(int a,int b) {int i; for(i=a;i>0;i--) if (a%i==0&&b%i==0) { return i; break;} } int gbs(int a,int b) {int i; for(i=a;;i++) if(i%a==0&&i%b==0) { return i; break;} } int main() {int a,b,c,d; cin>>a>>b; c=gys(a,b); d=gbs(a,b); cout< int factors(int num,int k) {int n=0,a; a=num%k; while(a==0) {n++; num=num/k; a=num%k; } return n;} int main() {int num,k,b; cin>>num>>k; b=factors(num,k); cout< int jc(int n) {int a,b=1; for(a=1;a<=n;a++) b=a*b; return b;} int main() {int n,s; cin>>n; s=jc(n); cout<

C语言字符串的输入和输出

C语言字符串的输入和输出 字符串的输入和输出 %c人为加入\0进行输入输出 %s直接输入输出 *输入输出字符串时字符数组应有足够的存储空间,指针变量作为输入项时,指针必须已经指向确切的、足够大的存储空间 %s的使用 scanf("%s",地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 例:char str[15]; scanf("%s",str); abc123 1.不读入空格和回车,从空格处结束 2.输入字符串长度超过字符数组元素个数,不报错 3.当输入项为字符指针时,指针必须已指向确定的有足够空间的连续 存储单元 4.当为数组元素地址时,从此元素地址开始存放 2.printf("%s",地址值) 输出时遇到第一个'\0'为止 3.gets和puts函数 开头必须stdio.h #include"stdio.h"

1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 4.当为数组元素地址时,从此元素地址开始存放 5.printf("%s",地址值) 输出时遇到第一个'\0'为止 6.gets和puts函数 开头必须stdio.h #include"stdio.h" 1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 7.例: char str[10]; gets(str); 包括空格符 8. 2.puts(字符串起始地址) 遇第一个'\0'结束,自动加入换行符 9.字符串数组:数组中每个元素都是一个存放字符串的数组 可以将一个二维数组看作是字符串数组 10.char ca[3][5]={"A","BB","CCC"}; A\0 B B\0 C C C\0 字符型指针数组 char*pa[3]={"a","bb","ccc"}; pa[0]pa[1]pa[2] 可以重新赋值gets(pa[2]);

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

Linux下常用C语言字符串操作函数

Linux下常用C语言字符串操作函数 stroul, strdup snprintf() atio C中常用字符串操作函数 #include size_t strlen(const char *s) 测量字符串长度s的实际长度。 例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度 char *strcat(const char *s1, const *s2) 将字符串s2连接到s1的尾部。从s1的\0开始。 int strcmp(const *s1,const *s2) 比较s1和s2。 s1 = s2的时候返回值=0 s1 < s2的时候返回至<0 s1 > s2的时候返回值>0 char *strchr(const char *s, char c); 返回s中首次出现C的位置的指针。如果s中不存在c则返回NULL char *strrchr(const char *s, char c );返回s中最后一次出现c的位置的指针。如果没有,则返回0 char *strstr(const char *haystack, const char *needle);返回haystack中needle字符串首次出现的位置的指针(不比较结束符NULL)。若果没找到则返回NULL 限定长度的比较,拷贝和追加函数 int strncmp(char *s1, const char *s2, size_t n);(这些都是针对字符串的前n个字符来操作的) char *strncpy(char *dest, const char *src, size_t n); char *strncat(char *dest, const char *src, size_t n); char *strdup(char *s)返回指向被复制的字符串的指针,所需空间由malloc()分配而且需要free释放空间 int atoi(const char *nptr);将字符串转换成整型数

C语言函数大全

功能: 异常终止一个进程 用法: void abort(void) 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i) 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode) 函数名: acos 功能:反余弦函数 用法: double acos(double x) 函数名: allocmem 功能: 分配DOS存储段 用法:int allocmem(unsigned size, unsigned *seg) 函数名: arc 功能: 画一弧线 用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime 功能: 转换日期和时间为ASCII码 用法:char *asctime(const struct tm *tblock) 函数名: asin 功能:反正弦函数 用法: double asin(double x) 函数名: assert 功能: 测试一个条件并可能使程序终止 用法:void assert(int test) 函数名: atan 功能: 反正切函数 用法: double atan(double x)

c函数编写规范

c函数编写规范收藏 一、可重入函数 1)什么是可重入性? 可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。 2)可重入函数: 不为连续的调用持有静态数据。 不返回指向静态数据的指针;所有数据都由函数的调用者提供。 使用本地数据,或者通过制作全局数据的本地拷贝来保护全局数据。 如果必须访问全局变量,记住利用互斥信号量来保护全局变量。 绝不调用任何不可重入函数。 3)不可重入函数: 函数中使用了静态变量,无论是全局静态变量还是局部静态变量。 函数返回静态变量。 函数中调用了不可重入函数。 函数体内使用了静态的数据结构; 函数体内调用了malloc()或者free()函数; 函数体内调用了其他标准I/O函数。 函数是singleton中的成员函数而且使用了不使用线程独立存储的成员变量。 总的来说,如果一个函数在重入条件下使用了未受保护的共享的资源,那么它是不可重入的。 4)示例 在多线程条件下,函数应当是线程安全的,进一步,更强的条件是可重入的。可重入

函数保证了在多线程条件下,函数的状态不会出现错误。以下分别是一个不可重入和 可重入函数的示例: //c code static int tmp; void func1(int* x, int* y) { tmp=*x; *x=*y; *y=tmp; } void func2(int* x, int* y) { int tmp; tmp=*x; *x=*y; *y=tmp; } func1是不可重入的,func2是可重入的。因为在多线程条件下,操作系统会在func1 还没有执行完的情况下,切换到另一个线程中,那个线程可能再次调用func1,这样 状态就错了。 二、函数编写规范 1 :对所调用函数的错误返回码要仔细、全面地处理 2 :明确函数功能,精确(而不是近似)地实现函数设计 3 :编写可重入函数时,应注意局部变量的使用(如编写C/C++ 语言的可重入函数时,应使用auto 即缺省态局部变量或寄存器变量) 说明:编写C/C++语言的可重入函数时,不应使用static局部变量,否则必须经过特殊处理,才能使函数具有可重入性。

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

WinCC C函数详解

WinCC C函数详解 GetFontSize函数参数: “lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。 1). 读出当前字体大小和fontsize中的缓冲区。 2). 执行处理返回值的自定义代码。 2. long int GetAlignmentTop(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义垂直文本对齐(上对齐、居中、下对齐)。 读出字体大小的实例 { long int fontsize; //获得实际字体大小fontsize = GetFontSize(lpszPictureName,"Static Text 1"); //自定义代码 //在那里用户可以使用返回值做某事 ... } GetFontSize函数参数: “lpszPictureName”是在其中组态该对象的画面的名称。 “Static Text1”是该对象的名称。

3. BOOL GetFontBold(LPCTSTR lpszPictureName, LPCTSTR lpszObjectName)函数,定义字体样式是否为“粗体字”。 读出静态文本域的布尔型属性的实例 { BOOL bbold; //了解文本是否是粗体字bbold = GetFontBold(lpszPictureName,"Static Text 1"); if(bbold) { // 自定义代码 // 字体是否是粗体字 ... } else { // 自定义代码 // 字体是否不是粗体字 ... } } GetFontBold函数参数:

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C函数编程20道习题汇总含其详细程序解答

第1题: 编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25 样例输出:5 75 #include int gys(int a,int b) {int i; for(i=a;i>0;i--) if (a%i==0&&b%i==0) { return i; break;} } int gbs(int a,int b) {int i; for(i=a;;i++) if(i%a==0&&i%b==0) { return i; break;} } int main() {int a,b,c,d; cin>>a>>b; c=gys(a,b); d=gbs(a,b); cout< int factors(int num,int k) {int n=0,a; a=num%k; while(a==0) {n++; num=num/k; a=num%k; } return n;} int main() {int num,k,b; cin>>num>>k; b=factors(num,k); cout< int jc(int n) {int a,b=1; for(a=1;a<=n;a++) b=a*b; return b;} int main() {int n,s; cin>>n; s=jc(n); cout< int sum(int k) { int n,c=0,s=0; for(n=k;n>0;n--) {if(n%13==0||n%17==0) {c++; s+=n;} if(c>=10) break;} return s;} int main() {int k,s; cin>>k; s=sum(k); cout<

相关文档
最新文档