第1章 C语言基础 1
1.1 C语言概述 1
1.2 C语言开发环境Turbo C 2.0的基础知识 4
1.2.1 File(文件)菜单 5
1.2.2 Edit(编辑)菜单 6
1.2.3 Run(运行)菜单 7
1.2.4 Compile(编译)菜单 8
1.2.5 Project(项目)菜单 9
1.2.6 Options(选项)菜单 10
1.2.7 Debug(调试)菜单 11
1.2.8 Break/watch(断点及监视表达式)菜单 11
1.3使用Turbo C运行程序 12
1.4使用Microsoft Visual C++6.0运行程序 13
第2章 分类函数 16
2.1字母数字 16
2.1.1判断字符是否为英文字母isalpha() 16
2.1.2判断字符是否为数字isdigit() 17
2.1.3判断字符是否为英文字母或数字isalnum() 18
2.1.4判断字符是否为小写字母islower() 19
2.1.5判断字符是否为大写字母isupper() 20
2.2字符 21
2.2.1判断字符是否为ASCII码isascii() 21
2.2.2判断字符是否为控制字符iscntrl() 22
2.2.3判断字符是否为可打印字符(不含空格)isgraph() 23
2.2.4判断字符是否为可打印字符(含空格)isprint() 24
2.2.5判断字符是否为标点符号ispunct() 25
2.2.6判断字符是否为空白字符isspace() 26
2.2.7判断字符是否为十六进制字符isxdigit() 27
第3章 字符串操作函数 29
3.1复制 29
3.1.1复制字符串到指定的数组中stpcpy() 29
3.1.2复制字符串到指定的数组中strcpy() 30
3.1.3复制字符串到最近申请的单元strdup() 31
3.1.4复制前N个字符strncpy() 32
3.2连接 33
3.2.1把一个字符串添加到另一个字符串的结尾处strcat() 33
3.2.2连接指定个数的字符到另一个字符串的结尾处strncat() 34
3.3检索 35
3.3.1检索某字符首次出现的位置strchr() 35
3.3.2查找字符串中最后一次出现某字符的位置strrchr() 36
3.3.3在一个字符串中搜索另一个字符串中的字符strcspn() 37
3.3.4求两个字符串中首个相同字符的位置strpbrk() 37
3.3.5求字符串中第一个不在指定字符串中出现字符的下标strspn() 38
3.3.6求子字符串首次出现的位置strstr() 39
3.4比较 40
3.4.1比较字符串(区分大小写)strcmp() 40
3.4.2比较字符串(不分大小写)stricmp() 41
3.4.3比较字符串的前几位字符(区分大小写)strncmp() 42
3.4.4比较字符串的前几位字符(不分大小写)stmicmp() 43
3.4.5求字符串长度strlen() 44
3.5转换 45
3.5.1将字符串转换为小写strlwr() 45
3.5.2将字符转换为大写strupr() 46
3.5.3反转字符串strrev() 46
3.5.4分解字符串strtok() 47
3.6置位 48
3.6.1将字符串前n个字符置位strnset() 48
3.6.2将字符串设置为指定的字符strset() 49
第4章 输入/输出函数(一) 50
4.1键盘控制台 50
4.1.1当前键盘输入kbhit() 50
4.1.2从控制台(键盘)读取一个字符getch() 51
4.1.3从控制台(键盘)读取一个字符,并显示在屏幕上getchar() 52
4.1.4从控制台(键盘)读取一个字符,并显示在屏幕上getche() 53
4.1.5从流中读取一个字符fgetchar() 54
4.1.6向控制台写一个字符putch() 55
4.1.7输出一个字符到控制台putchar() 55
4.1.8把字符退回到键盘缓冲区ungetch() 56
4.1.9把一个字符退回输入流ungetc() 57
4.1.10从控制台(键盘)读取一个字符串cgets() 58
4.1.11格式化输入scanf() 59
4.1.12从stdin中执行格式化输入vscanf() 60
4.1.13格式化输入cscanf() 61
4.1.14从字符串中读取指定格式的数据sscanf() 62
4.1.15从stdin中执行格式化输入vsscanf() 62
4.1.16将一个字符串放入输出流中puts() 63
4.1.17格式化输出printf() 64
4.1.18格式化输出vprintf() 65
4.1.19格式化输出至屏幕cprintf() 66
4.1.20将格式化的数据写入字符串sprintf() 67
4.1.21将格式化的数据放入字符串中vsprintf() 68
4.2设备 69
4.2.1控制I/O设备ioctl 69
4.2.2设置某一信号的相应动作signal() 71
4.2.3向正在执行的程序发送一个信号raise() 72
第5章 输入/输出函数(二) 74
5.1文件 74
5.1.1修改文件名rename() 74
5.1.2打开文件open() 75
5.1.3新建文件creat() 77
5.1.4创建一个新文件creatnew() 77
5.1.5从文件中读read() 78
5.1.6往已经打开的文件中写数据write() 80
5.1.7复制文件句柄dup() 81
5.1.8复制文件句柄dup2() 82
5.1.9检测文件结束eof() 84
5.1.10移动文件读/写指针lseek() 85
5.1.11获取文件指针的当前位置tell() 86
5.1.12获取设备类型isatty() 87
5.1.13设置文件共享锁lock() 88
5.1.14解除文件共享锁unlock() 89
5.1.15关闭文件close() 90
5.1.16打开一个文件fopen() 91
5.1.17从流中读取字符getc() 93
5.1.18往指定流中输入一个字符putc() 94
5.1.19从流中读取整数getw() 95
5.1.20向流中写整数putw() 97
5.1.21把一个字符退回到输入流中ungetc() 98
5.1.22送一个字符到流中fputc() 99
5.1.23从流中读取一个字符fgetc() 100
5.1.24从流中读取一行或者指定个数的字符fgets() 101
5.1.25送一个字符串到流中fputs() 102
5.1.26从一个流中读取数据fread() 103
5.1.27向流中写入一个数据块fwrite() 105
5.1.28从一个流中执行格式化输入fscanf() 106
5.1.29将格式化数据送到流中fprintf() 107
5.1.30从流中执行格式化输入vfscanf() 108
5.1.31往流中格式化输出vfprintf() 109
5.1.32移动文件的读/写指针到指定的位置fseek() 111
5.1.33获取文件读/写指针的当前位置ftell() 112
5.1.34将文件的读/写指针重新指向开头rewind() 113
5.1.35检查流上的文件结束标识feof() 114
5.1.36检测文件流是否出错ferror() 116
5.1.37复位流错误标识clearerr() 117
5.1.38把缓冲区与流相连setbuf() 118
5.1.39为流指定特殊的缓冲区setvbuf() 119
5.1.40关闭文件流fclose() 120
5.1.41关闭所有打开的流fcloseall() 121
5.1.42清空文件缓冲区fflush() 122
5.1.43往已经打开的文件中写数据write() 122
5.2文件属性 124
5.2.1设置文件属性chmod() 124
5.2.2获取文件属性access() 125
5.2.3获取文件的日期与时间getftime() 126
5.2.4设置文件的日期与时间setftime() 127
5.2.5获取文件长度filelength() 128
5.2.6设置打开文件方式setmode() 129
第6章 数学函数 131
6.1绝对值 131
6.1.1整数的绝对值abs() 131
6.1.2求双精度数据的绝对值fabs() 132
6.1.3求长整型数的绝对值labs() 133
6.2三角函数 134
6.2.1正弦函数sin() 134
6.2.2反正弦函数asin() 135
6.2.3余弦函数cos() 136
6.2.4反余弦函数acos() 136
6.2.5正切函数tan() 137
6.2.6反正切函数atan() 138
6.2.7反正切函数atan2() 138
6.2.8求直角三角形的斜边长hypot() 139
6.3其他 140
6.3.1计算多项式ploy() 140
6.3.2将双精度数分解为整数和小数部分modf() 141
6.3.3求余数fmod() 142
6.3.4把浮点数分解为尾数和指数frexp() 142
6.3.5指数函数运算exp() 143
6.3.6计算value乘以2的exp次幂ldexp() 144
6.3.7计算以e为底的对数值log() 145
6.3.8计算以10为底的对数值log10() 145
6.3.9计算x的y次幂pow() 146
6.3.10计算10的x次幂pow10() 147
6.3.11求一个非负数的平方根sqrt() 147
6.3.12求双曲余弦值cosh() 148
6.3.13求双曲正弦值sinh() 149
6.3.14求双曲正切值tanh() 149
6.3.15求大于或者等于指定数的最小整数ceil() 150
6.3.16求小于或者等于指定数的最大整数floor() 151
6.3.17随机数发生器的初始化函数srand() 151
6.3.18伪随机数发生器rand() 152
第7章 时间函数 154
7.1转换时间格式 154
7.1.1把日期和时间转换为字符串etime() 154
7.1.2把时间转换为ASCII码asctime() 155
7.1.3把时间转换为格林尼治时间gmtime() 156
7.1.4把时间转换为当地标准时间localtime() 157
7.1.5 UNIX时间兼容函数tzset() 158
7.1.6把时间转换为UNXI格式dostounix() 158
7.1.7把时间转换为DOS格式unixtodos() 159
7.2读取和设置计算机时间 160
7.2.1获取计算机日期getdate() 161
7.2.2设置计算机日期setdate() 161
7.2.3获取计算机时间gettime() 162
7.2.4设置计算机时间settime() 163
7.2.5获取当前系统时间time() 164
7.2.6设置当前系统时间stime() 164
7.2.7计算时间差difftime() 165
第8章 转换函数 167
8.1数字转字符串 167
8.1.1将双精度数转换为字符串ecvt() 167
8.1.2将浮点数转换为字符串fcvt() 168
8.1.3将浮点数转换为字符串gcvt() 169
8.1.4将无符号长整型数据转换为任意进制的字符串ultoa() 170
8.1.5将长整型数据转换为字符串ltoa() 171
8.1.6将整数转换为字符串itoa() 172
8.2字符串转数字 173
8.2.1将字符串转为浮点数atof() 173
8.2.2将字符串转换为整数atoi() 173
8.2.3将字符串转换为长整型数据atol() 174
8.2.4将字符串转换为浮点数strtod() 175
8.2.5将字符串转换成长整型数据strtol() 176
8.3其他转换函数 177
8.3.1将字符转换为小写字母tolower() 178
8.3.2将字符转换成大写字母toupper() 178
8.3.3求字符对应的ASCII码toascii() 179
第9章 图形函数(一) 181
9.1点线型函数 181
9.1.1获取指定位置像素的颜色getpixel() 182
9.1.2在指定位置绘制像素putpixel() 184
9.1.3在指定的两点之间画一直线line() 185
9.1.4从当前点到有一定相对距离的点画直线linerel() 187
9.1.5设置当前线的宽度和类型setlinestyle() 189
9.1.6获取可以传递给函数setcolor的最大颜色值getmaxcolor() 191
9.1.7设置当前画线颜色setcolor() 193
9.1.8获取当前画线颜色getcolor() 195
9.1.9获取当前线型信息getlinesettings() 196
9.1.10绘制矩形rectangle() 198
9.1.11绘制多边形drawpoly() 199
9.1.12绘制多边形并填充fillpoly() 201
9.1.13获取最后一次调用arc的坐标getarccoords() 203
9.1.14绘制圆弧arc() 205
9.1.15绘制圆circle() 206
9.1.16绘制扇形并填充pieslice() 208
9.1.17绘制椭圆ellips() 209
9.1.18绘制椭圆并填充fillellipse() 211
9.2填充函数 212
9.2.1获取当前的填充模式和填充颜色getfillsettings() 213
9.2.2将用户定义的填充模式复制到内存中getfillpattern() 215
9.2.3选择用户定义的填充模式setfillpattern() 217
9.2.4设置填充模式和颜色setfillstyle() 218
9.2.5获取当前图形模式的纵横比getaspectratio() 220
9.2.6设置图形模式的纵横比setaspectratio() 222
9.2.7获取当前背景颜色getbkcolor() 224
9.2.8设置背景颜色setbkcolor() 226
9.2.9获取调色板信息getpalette() 228
9.2.10设置调色板的颜色setpalette() 230
9.2.11设置调色板所有颜色值setallpalette() 232
9.2.12填充一个有界区域floodfill() 234
第10章 图形函数(二) 237
10.1字体函数 237
10.1.1设置图形输出系统的文本类型settextstyle() 237
10.1.2获取当前图形文本字体的信息gettextsetyings() 239
10.1.3在当前点输出字符串outtext() 241
10.1.4在指定位置显示一个字符串outtextxy() 243
10.1.5设置图形函数的文本对齐方式settextjustify() 244
10.1.6设置矢量字体的宽度和高度setusercharsize() 246
10.1.7获取以像素为单位的字符串高度textheight() 247
10.1.8获取以像素为单位的字符串宽度textwidth() 249
10.1.9选择低亮度字符lowvideo() 251
10.1.10选择高亮度字符highvideo() 251
10.2其他函数大集合 252
10.2.1初始化图形系统initgragh() 252
10.2.2通过检查硬件确定图形驱动程序和模式detectgraph() 254
10.2.3获取当前视窗信息getviewsettings() 255
10.2.4获取当前图形位置的X坐标getx() 257
10.2.5获取当前图形位置的Y坐标gety() 258
10.2.6设置当前视窗setviewport() 260
10.2.7清空视窗clearviewport() 262
10.2.8清除图形屏幕cleardevice() 263
10.2.9获取屏幕的最大X坐标getmaxx() 265
10.2.10获取屏幕的最大Y坐标getmaxy() 266
10.2.11移动当前点到指定位置moveto() 268
10.2.12移动当前点到一相对距离moverel() 269
10.2.13绘制二维条形图bar() 270
10.2.14绘制三维条形图bar3d() 272
10.2.15关闭图形系统closegraph() 273
10.2.16设置内部图形缓冲区的大小setgraphbufsize() 275
10.2.17获取当前图形模式getgraphmode() 276
10.2.18获取图形模式名getmodename() 278
10.2.19设置当前图形模式setgraphmode() 279
10.2.20保存指定区域的图像到内存getimage() 281
10.2.21将内存中的图像数据显示到屏幕上putimage() 284
10.2.22获取给定图形驱动程序的模式范围getmoderange() 287
10.2.23把当前的图形系统设置都复位为默认值graphdefaults() 288
10.2.24将屏幕模式恢复为文本模式restorecrtmode() 290
10.2.25选择图形输出活动页setactivepage() 292
10.2.26设置可见图形活动页setvisualpage() 294
10.2.27获取最后一次错误的图形操作的错误代码graphresult() 296
10.2.28获取一个错误信息grapherrormsg() 297
10.2.29用户可修改的图形存储区分配函数_graphgetmem() 298
10.2.30用户可修改的图形存储区释放函数_graphfreemem() 300
第11章 诊断函数 303
11.1测试一个条件,如果为假则中止程序执行assert() 303
11.2显示最近一次错误信息perror() 304
11.3获取最近一次错误信息strerror() 305
第12章 接口函数 307
12.1文件与地址 307
12.1.1获取远指针偏移量FP_OFF() 307
12.1.2获取远地址段值FP_SEG() 308
12.1.3根据段值和偏移量构造一个远指针MK_FP() 309
12.1.4获取程序段前缀的段地址getpsp() 310
12.1.5删除文件unlink() 310
12.1.6分析文件名parsfnm() 312
12.1.7随机块读randbrd() 313
12.1.8随机块写randbwr() 314
12.1.9获取段的某偏移处的字peek() 316
12.1.10获取段某偏移处的字节peekb() 318
12.1.11把字写到段的某偏移处poke() 319
12.1.12把字节写到段的某偏移处pokeb() 320
12.1.13读取段寄存器值segread() 320
12.1.14读取绝对磁盘扇区absread() 321
12.1.15往绝对磁盘扇区写数据abswrite() 322
12.1.16获取磁盘自由空间getdfree() 324
12.1.17获取磁盘传输地址getdta() 324
12.1.18设置磁盘传输地址setdta() 326
12.1.19获取指定驱动器文件分配表信息getfat() 327
12.1.20获取当前驱动器文件分配表信息getfatd() 328
12.2中断 329
12.2.1通用8086软中断接口int86() 329
12.2.2通用8086软中断int86x() 330
12.2.3改变软中断接口intr() 333
12.2.4通用DOS中断接口intdos() 334
12.2.5通用DOS中断接口intdosx() 335
12.2.6退出并继续驻留keep() 336
12.2.7设置Ctrl_Break中断处理程序ctrlbrk() 337
12.2.8禁止中断发生disable() 338
12.2.9允许中断发生enable() 339
12.2.10产生一个软中断geninterrupt() 339
12.2.11获取中断的处理程序getvect() 340
12.2.12设置中断的处理程序setvect() 341
12.2.13定义硬件错误处理程序harderr() 342
12.2.14硬件错误处理函数hardresume() 343
12.2.15硬件错误处理函数hardretn() 345
12.2.16获取Ctrl_Break中断状态getcbrk() 346
12.2.17设置Ctrl_Break中断开关setcbrk() 347
12.3其他 347
12.3.1 DOS系统调用bdos() 348
12.3.2通用DOS系统调用bdosptr() 348
12.3.3读取DOS校验标志状态getverify() 350
12.3.4设置DOS校验标志状态setverify() 351
12.3.5获取扩展DOS错误信息dosexterr() 352
12.3.6 DOS的串行I/O通信bioscom() 353
12.3.7对磁盘进行低级操作biosdisk() 355
12.3.8检测设备biosequip() 357
12.3.9键盘操作接口bioskey() 358
12.3.10获取RAM大小biosmemory() 359
12.3.11直接使用BIOS服务的打印机I/O biosprint() 360
12.3.12读取或者设置BIOS时间biostime() 361
12.3.13延时sleep() 362
12.3.14获取与国家相关的信息countty() 363
12.3.15从硬件端口读入一个字inport() 364
12.3.16从硬件端口读入一个字节inportb() 365
12.3.17把字写入硬件端口outport() 365
12.3.18把字节写入硬件端口outportb() 366
第13章 目录函数 367
13.1文件 367
13.1.1构造文件名fnmerge() 367
13.1.2分解文件名fnsplit() 368
13.1.3查找第一个匹配的文件findfirst() 370
13.1.4查找下一个匹配的文件findnext() 371
13.1.5查找文件searchpath() 372
13.1.6构造一个当前目录上不存在的文件名mktemp() 373
13.2目录 374
13.2.1创建新目录mkdir() 374
13.2.2删除目录rmdir() 375
13.2.3获取指定驱动器的当前工作目录getcurdir() 376
13.2.4设置当前工作路径chdir() 377
13.2.5获取当前工作路径getcwd() 379
13.2.6获取当前正在使用的驱动器getdisk() 379
13.2.7设置要使用的驱动器setdisk() 380
第14章 进程函数 382
14.1异常中止一个进程abort() 382
14.2中止进程exit() 383
14.3中止进程_exit() 383
14.4注册终止函数atexit() 384
14.5装入并运行其他程序的函数族exec() 385
14.6运行子程序的函数族spawn() 387
14.7发出一个DOS命令system() 388
第15章 内存函数 390
15.1空间地址 390
15.1.1分配DOS存储段allocmem() 390
15.1.2修改之前分配的DOS存储段的大小setblock() 391
15.1.3更改数据段空间的分配brk() 393
15.1.4增加数据段空间的分配sbrk() 394
15.1.5申请内存空间calloc() 395
15.1.6向系统申请分配内存空间malloc() 396
15.1.7重新分配内存空间realloc() 397
15.1.8分配远堆内存空间farmalloc() 398
15.1.9申请远堆内存空间farcalloc() 399
15.1.10改变远堆内存大小farrealloc() 400
15.1.11释放由allocmem分配的内存freemem() 401
15.1.12释放由malloc申请的空间free() 402
15.1.13获取未使用内存的大小coreleft() 403
15.1.14获取远堆中未使用的存取区大小farcoreleft() 404
15.1.15释放远堆内存空间farfree() 405
15.2内存数据 406
15.2.1复制不大于指定个数的数据到目标区memccpy() 406
15.2.2复制指定个数的字节到目标区memcpy() 407
15.2.3复制字节movedata() 408
15.2.4移动一块字节movemem() 409
15.2.5内存数据移动memmove() 410
15.2.6内存置位为指定的值memset() 411
15.2.7置位内存指定的位置setmem() 412
15.2.8从内存查找字符memchr() 413
15.2.9比较内存中的字符(区分大小写)memcmp() 414
15.2.10比较内存中字符的大小(不区分大小写)memicmp() 415