stdio.h&stdlib.h&string.h
stdio.h&stdlib.h&string.h
标签:
杂谈 |
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
int
long
double
long
unsigned long
1> 第二组函数的参数意义如下:
const char*
char**
int
2> strtol函数举例:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main()
{
}
2 随机数
常量
#define
函数
void
int
3 内存管理
常量
#define NULL
函数
void*
void*
void*
void
4 与环境的接口
常量
#define
#define
函数
void
void
int
int
char*
5 查找与排序
void*
void
1> comp函数的返回值
int comp(const void *p1, const void *p2)
{
}
若第一个指针所指向的内容, 排序后应该放在第二个指针所指向的内容之前, 那么应返回负值;
反之返回正值; 其他情况返回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
long
div_t
ldiv_t
7 多字节字符
常量
MB_CUR_MAX
函数
size_t
int
int
size_t
int
stdlib.h头文件下的常用函数
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
====================================================
gcvt()把双精度数转化成字符串的函数
原形∶char*gcvt(value,ndigit,buf)
其中∶double value是待转化数
int ndigit是转化长度
char *buf保存转化后的地址
头文件∶stdlib.h
====================================================
geninterrupt()执行中断函数
原形:void geninterrupt(int n)
调用方式:geninterrupt(软中断号)
功能:产生一个8086软中断
注:需先向寄存器传递入口信息(用伪变量)
例如 伪变量=要赋的值(入口信息);
调用geninterrupt()函数后得接受出口信息
例如 变量名=伪变量
伪变量∶Turbo C 允许使用伪变量直接访问相应的8086寄存器。伪变量的类型有两种。
① unsigned int : _AX、 _BX、 _CX、 _DX、 _CS、 _DS、 _SS、 _ES、_SP、 _BP、 _DI、 _SI
② unsigned char: _AL、 _AH、 _BL、 _BH、 _CL、 _CH、 _DL、 _DH
===================================================
getenv()读取环境变量的当前值的函数
原形:char *getenv(const char *name)
用法:s=getenv("环境变量名");
需先定义char *s;
功能:返回一给定的环境变量值,环境变量名可大写或小写。如果指定的变量在环境中未定义,则返回一空串。
头文件:stdlib.h
====================================================
itoa()把整形数转换为字符串的函数
原形:char *itoa(int value,char *string,int radix)
功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多17字节)。
返回值:指向string的指针
头文件:stdlib.h
==================================================
_lrotl()将一个无符号长整形数左循环移位的函数
原形:unsigned long _lrotl(unsigned long value,int count)
功能:将value向左循环移动count位。
返回值:将value向左循环移动count位后的值。
头文件:stdlib.h
_lrotr()将一个无符号长整形数右循环移位的函数
原形:unsigned long _lrotr(unsigned long value,int count)
功能:将value向右循环移动count位。
返回值:将value向右循环移动count位后的值。
头文件:stdlib.h
ltoa()把长整形数转换为字符串的函数
原形:char *ltoa(long value,char *string,int radix)
功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多33字节)。
返回值:指向string的指针
头文件:stdlib.h
malloc()分配内存函数
原形:void *malloc(size_t size)
功能:从堆中分配大小为size字节的块。win32也适用。
返回值:返回新分配内存的地址,若无足够内存,返回NULL。
头文件:alloc.h、stdlib.h
============================================================
putenv()将字符串放入当前环境中的函数
原形:int putenv(const char *name)
用法例:putenv("PATH=C:BTC");
功能:把字符串name加到当前程序运行的环境中。当程序结束后,原环境将得到恢复。
返回值:0(成功);-1(失败)
头文件:stdlib.h
============================================================
realloc()重新分配内存函数
原形:void *realloc(void *block,size_t size)
block指向用malloc、calloc或realloc已得到的内存。
size是重新分配的字节。
返回值:重分配的块地址。若不能重分配,则返回NULL。
头文件:stdlib.h
=============================================================
_rotl()将一个无符号整形数左循环移位的函数
原形:unsigned _rotl(unsigned value,int count)
功能:将value向左循环移动count位。
返回值:将value向左循环移动count位后的值。
头文件:stdlib.h
=============================================================
_rotr()将一个无符号整形数右循环移位的函数
原形:unsigned _rotr(unsigned value,int count)
功能:将value向右循环移动count位。
返回值:将value向右循环移动count位后的值。
头文件:stdlib.h
*********************************************************************
string.h
1、strcpy
函数名: strcpy
功 能: 拷贝一个字符串到另一个
用 法: char *strcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%s ", string);
return 0;
}
2、strcat
函数名: strcat
功 能: 字符串拼接函数
用 法: char *strcat(char *destin, char *source);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s ", destination);
return 0;
}
3、strchr
函数名: strchr
功 能: 在一个串中查找给定字符的第一个匹配之处
用 法: char *strchr(char *str, char c);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
