若str1=str2,返回0
若str1>str2,为正数
strncpy
char*strncpy(char*str1,*str2,unsignedcount);
把str2指向的字符串中最多前count个字符拷贝到串str1中去
返回str1
strnset
void*setnset(char*buf,charch,unsignedcount);
将字符ch拷贝到buf指向的数组前count个字符中。
返回buf
strset
void*setset(void*buf,charch);
将buf所指向的字符串中的全部字符都变为字符ch
返回buf
strstr
char*strstr(char*str1,*str2);
寻找str2指向的字符串在str1指向的字符串中首次出现的位置
返回str2指向的字符串首次出向的地址。
否则返回NULL
strnicmp
intstrnicmp(char*str1,char*str2,unsignedmaxlen);
将一个串中的一部分与另一个串比较,不管大小写
strcspn
Intstrcspn(char*str1,char*str2);
在串中查找第一个给定字符集容的段
strdup
char*strdup(char*str);
将串拷贝到新建的位置处
strpbrk
char*strpbrk(char*str1,char*str2);
在串中查找给定字符集中的字符
strrchr
char*strrchr(char*str,charc);
在串中查找指定字符的最后一个出现
strrev
char*strrev(char*str);
串倒转
Strtod(strtol)
doublestrtod(char*str,char**endptr);
将字符串转换为double型值,strtol为长整型
swab
voidswab(char*from,char*to,intnbytes);
交换字节
4.输入输出函数
在使用输入输出函数时,应该在源文件中使用预编译命令:
#include或#include"stdio.h"
函数名
函数原型
功能
返回值
clearerr
voidclearer(FILE*fp);
清除文件指针错误指示器
无
close
intclose(intfp);
关闭文件(非ANSI标准)
关闭成功返回0,不成功返回-1
creat
intcreat(char*filename,intmode);
以mode所指定的方式建立文件(非ANSI标准)
成功返回正数,否则返回-1
eof
inteof(intfp);
判断fp所指的文件是否结束
文件结束返回1,否则返回0
fclose
intfclose(FILE*fp);
关闭fp所指的文件,释放文件缓冲区
关闭成功返回0,不成功返回非0
feof
intfeof(FILE*fp);
检查文件是否结束
文件结束返回非0,否则返回0
ferror
intferror(FILE*fp);
测试fp所指的文件是否有错误
无错返回0,否则返回非0
fflush
intfflush(FILE*fp);
将fp所指的文件的全部控制信息和数据存盘
存盘正确返回0,否则返回非0
fgets
char*fgets(char*buf,intn,FILE*fp);
从fp所指的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间
返回地址buf。
若遇文件结束或出错则返回EOF
fgetc
intfgetc(FILE*fp);
从fp所指的文件中取得下一个字符
返回所得到的字符。
出错返回EOF
fopen
FILE*fopen(char*filename,char*mode);
以mode指定的方式打开名为filename的文件
成功,则返回一个文件指针,否则返回0
fprintf
intfprintf(FILE*fp,char*format,args,…);
把args的值以format指定的格式输出到fp所指的文件中
实际输出的字符数
fputc
intfputc(charch,FILE*fp);
将字符ch输出到fp所指的文件中
成功则返回该字符,出错返回EOF
fputs
intfputs(charstr,FILE*fp);
将str指定的字符串输出到fp所指的文件中
成功则返回0,出错返回EOF
fread
intfread(char*pt,unsignedsize,unsignedn,FILE*fp);
从fp所指定文件中读取长度为size的n个数据项,存到pt所指向的存区
返回所读的数据项个数,若文件结束或出错返回0
fscanf
intfscanf(FILE*fp,char*format,args,…);
从fp指定的文件中按给定的format格式将读入的数据送到args所指向的存变量中(args是指针)
以输入的数据个数
fseek
intfseek(FILE*fp,longoffset,intbase);
将fp指定的文件的位置指针移到base所指出的位置为基准、以offset为位移量的位置
返回当前位置,否则返回-1
ftell
longftell(FILE*fp);
返回fp所指定的文件中的读写位置
返回文件中的读写位置,否则返回0
fwrite
intfwrite(char*ptr,unsignedsize,unsignedn,FILE*fp);
把ptr所指向的n*size个字节输出到fp所指向的文件中
写到fp文件中的数据项的个数
getc
intgetc(FILE*fp);
从fp所指向的文件中的读出下一个字符
返回读出的字符,若文件出错或结束返回EOF
getchar
intgetchar();
从标准输入设备中读取下一个字符
返回字符,若文件出错或结束返回-1
gets
char*gets(char*str);
从标准输入设备中读取字符串存入str指向的数组
成功返回str,否则返回NULL
open
intopen(char*filename,intmode);
以mode指定的方式打开已存在的名为filename的文件(非ANSI标准)
返回文件号(正数),如打开失败返回-1
printf
intprintf(char*format,args,…);
在format指定的字符串的控制下,将输出列表args的指输出到标准设备
输出字符的个数。
若出错返回负数
prtc
intprtc(intch,FILE*fp);
把一个字符ch输出到fp所值的文件中
输出字符ch,若出错返回EOF
putchar
intputchar(charch);
把字符ch输出到fp标准输出设备
返回换行符,若失败返回EOF
puts
intputs(char*str);
把str指向的字符串输出到标准输出设备,将“\0”转换为回车行
返回换行符,若失败返回EOF
putw
intputw(intw,FILE*fp);
将一个整数i(即一个字)写到fp所指的文件中(非ANSI标准)
返回读出的字符,若文件出错或结束返回EOF
read
intread(intfd,char*buf,unsignedcount);
从文件号fp所指定文件中读count个字节到由buf知识的缓冲区(非ANSI标准)
返回真正读出的字节个数,如文件结束返回0,出错返回-1
remove
intremove(char*fname);
删除以fname为文件名的文件
成功返回0,出错返回-1
rename
intremove(char*oname,char*nname);
把oname所指的文件名改为由nname所指的文件名
成功返回0,出错返回-1
rewind
voidrewind(FILE*fp);
将fp指定的文件指针置于文件头,并清除文件结束标志和错误标志
无
scanf
intscanf(char*format,args,…);
从标准输入设备按format指示的格式字符串规定的格式,输入数据给args所指示的单元。
args为指针
读入并赋给args数据个数。
如文件结束返回EOF,若出错返回0
write
intwrite(intfd,char*buf,unsignedcount);
丛buf指示的缓冲区输出count个字符到fd所指的文件中(非ANSI标准)
返回实际写入的字节数,如出错返回-1
5.动态存储分配函数
在使用动态存储分配函数时,应该在源文件中使用预编译命令:
#include或#include"stdlib.h"
函数名
函数原型
功能
返回值
callloc
void*calloc(unsignedn,unsignedsize);
分配n个数据项的存连续空间,每个数据项的大小为size
分配存单元的起始地址。
如不成功,返回0
free
voidfree(void*p);
释放p所指存区
无
malloc
void*malloc(unsignedsize);
分配size字节的存区
所分配的存区地址,如存不够,返回0
realloc
void*realloc(void*p,unsignedsize);
将p所指的以分配的存区的大小改为size。
size可以比原来分配的空间大或小
返回指向该存区的指针。
若重新分配失败,返回NULL
6.其他函数
有些函数由于不便归入某一类,所以单独列出。
使用这些函数时,应该在源文件中使用预编译命令:
#include或#include"stdlib.h"
函数名
函数原型
功能
返回值
abs
intabs(intnum);
计算整数num的绝对值
返回计算结果
atof
doubleatof(char*str);
将str指向的字符串转换为一个double型的值
返回双精度计算结果
atoi
intatoi(char*str);
将str指向的字符串转换为一个int型的值
返回转换结果
atol
longatol(char*str);
将str指向的字符串转换为一个long型的值
返回转换结果
exit
voidexit(intstatus);
中止程序运行。
将status的值返回调用的过程
无
itoa
char*itoa(intn,char*str,intradix);
将整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串中
返回一个指向str的指针
labs
longlabs(longnum);
计算long型整数num的绝对值
返回计算结果
ltoa
char*ltoa(longn,char*str,intradix);
将长整数n的值按照radix进制转换为等价的字符串,并将结果存入str指向的字符串
返回一个指向str的指针
rand
intrand(void);
产生0到32767间的随机整数(0到0x7fff之间)
返回一个伪随机(整)数
random
intrandom(intnum);
产生0到num之间的随机数。
返回一个随机(整)数
randomize
voidrandomize();
初始化随机函数,使用时包括头文件time.h。
putenv
intputenv(constchar*name)
将字符串name增加到DOS环境变量中
0:
操作成功,-1:
操作失败
ecvt
char*ecvt(doublevalue,intndigit,int*dec,int*sign)
将浮点数转换为字符串
value-待转换底浮点数,ndigit-转换后的字符串长度
转换后的字符串指针