stdio.h中的标准输入输出函数
int getchar() //从标准输入设备读入一个字符,显示
int putchar() //向标准输出设备写一个字符
int scanf(char *format[,argument…]) //从标准输入设备读入数据
int printf(char *format[,argument…]) //格式化字符串输入到标准输出设备
int puts(char *string) //输出一个字符串到标准输出设备
char *gets(char *string) //从标准输入设备读入一个字符串
************************************************************************
stdlib.h
1 字符串转换
double atof (const char*);
int atoi (const char*);
long atol (const char*);
double strtod (const char*, char**);
long strtol (const char*, char**, int);
unsigned long strtoul (const char*, char**, int);
1> 第二组函数的参数意义如下:
const char* 指向需要转换的字符串
char** 更新后指向当前数字串之后的一个位置
int 基数(进制数)
2> strtol函数举例:
#include
#include
#include
int main()
{
char *buf = " 0B 00 41 42 43 44 45 46 47 48 49 ";
char *ptr = buf;
while (isspace(*ptr))
ptr++;
while (*ptr != '\0')
{
printf("%ld\n", strtol(ptr, &ptr, 16));
while (isspace(*ptr))
ptr++;
}
return 0;
}
2 随机数
常量
#define RAND_MAX 0x7FFF rand的最大返回值
函数
void srand (unsigned int); 置随机数发生器(种子)
int rand (void); 返回下一个伪随机数
3 内存管理
常量
#define NULL ((void *)0) 空指针
函数
void* calloc (size_t, size_t); 分配内存, 并清零
void* malloc (size_t); 分配内存
void* realloc (void*, size_t); 重新分配内存, 返回新指针
void free (void*); 释放内存
4 与环境的接口
常量
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
函数
void abort (void);
void exit (int);
int atexit (void (*)(void));
int system (const char*);
char* getenv (const char*);
5 查找与排序
void* bsearch (const void*, const void*, size_t, size_t,
int (*)(const void*, const void*));
void qsort (const void*, size_t, size_t,
int (*)(const void*, const void*));
1> comp函数的返回值
int comp(const void *p1, const void *p2)
{
const int *pi1 = (const int *)p1;
const int *pi2 = (const int *)p2;
return *pi1 - *pi2;
}
若第一个指针所指向的内容, 排序后应该放在第二个指针所指向的内容之前, 那么应返回负值;
反之返回正值; 其他情况返回0. 上例中的comp函数将int数组按升序排序.
2> qsort的调用方法
qsort((void *)list, length, sizeof(int), comp);
6 整数运算
结构
typedef struct { int quot, rem; } div_t;
typedef struct { long quot, rem; } ldiv_t;
函数
int abs (int);
long labs (long);
div_t div (int, int);
ldiv_t ldiv (long, long);
7 多字节字符
常量
MB_CUR_MAX 多字节字符中的最大字节数
函数
size_t wcstombs (char*, const wchar_t*, size_t);
int wctomb (char*, wchar_t);
int mblen (const char*, size_t);
size_t mbstowcs (wchar_t*, const char*, size_t);
int mbtowc (wchar_t*, const char*, size_t);
atof()将字符串转换成浮点数的函数
原形:double atof(const char *s)
功能:把s所指向的字符串转换成double类型。
s格式为:符号 数字.数字 E符号 数字
返回值:字符串的转换值。
头文件:math.h、stdlib.h
atoi()将字符串转换成整型数的函数
原形:int atoi(const char *s)
功能:把s所指向的字符串转换成int类型。
s格式为:符号 数字
返回值:字符串的转换值。若出错则返回0。
头文件:stdlib.h
atol()将字符串转换成长整型数的函数
原形:long atol(const char *s)
功能:把s所指向的字符串转换成long int类型。
s格式为:符号 数字
返回值:字符串的转换值。若出错则返回0。
头文件:stdlib.h
===================================================
calloc()分配内存函数
原形:void *calloc(size_t nitems,size_t size)
功能:在堆中分配一块内存,将该内存的内容全部清0。
返回值:返回指向新分配内存的指针。空间不够则返回NULL。
头文件:stdlib.h、calloc.h
===================================================
free()释放已分配内存的函数
原形:void free(void *block)
功能:释放由calloc、malloc、realloc函数调用所分配的内存。
头文件:stdlib.h、alloc.h
============&