一些常用函数

操作系统:MAC OS

编译器: XCODE

以下均为个人学习经验,如有不对请指教

**********************************************************

( 整理好的word文档黏贴过来黑点变成字符n了~~~~(>_<)~~~~ )

Malloc,calloc,relloc函数都在stdlib.h函数库内。它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL

malloc函数

函数声明: void*malloc(unsigned long); 形参:内存大小;返回地址

 

int*a=(int *)malloc(10*sizeof(int));  //手动申请内存

if(!a)                          //若申请失败返回NULL

exit(-1);

使用该内存;

free(a);                        //释放内存

a=NULL;   //把指向内存的指针变量赋值为NULL,防止野指针产生

n  calloc函数

   函数声明:void *calloc(size_t count, size_t size);

   size_t count : 对象个数

   size_t size : 每个对象占用的内存空间大小

   空间大小 =count * size;

   申请到的内存块被清为0

   EG:int *pnum= (int *)calloc(10, sizeof(int));

Malloc与clloc区别

malloc 只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。calloc在动态分配完内存后,自动初始化该内存空间为零。

 

n  relloc函数

函数声明: void* realloc(void* ptr, unsignednewsize);

realloc调用形式为(类型*)realloc(*ptrsize):将ptr内存大小增大到size        

(也可以缩小(字符串不自动添加\0),缩小的内容消失)

特殊用法

    realloc(NULL, 200);<==>malloc(200);

    realloc(ptr,0);  <==> free(ptr); 

realloc有个细节需要注意:

无非就是将已经存在的一块内存扩大。

   1.如果当前连续内存块足够 realloc 的话,只是将p所指向的空间扩大,并返回p的指针地址。这个时候 q p 指向的地址是一样的。

2.如果当前连续内存块不够长度,再找一个足够长的地方,分配一块新的内存,q,并将 p指向的内容 copy q,返回 q。并将p所指向的内存空间删除。(堆上处理)

以下包含在string.h文件中

 

n  字符串拷贝函数

char *strncpy(char *dst, const char *src, size_t n);

   size_t n: 允许最大可以拷贝的字符个数

              如果拷贝的是整个字符串, 那么得到的也是一个字串,   

如果拷贝的是字符数组, 那么得到的也是字符数组

 

n  字符串比较函数

int  strncmp(const char *, const char *, size_t n);

size_t n: 最大比较字符个数

如果前后字符串的前size个字符相同,函数返回值为0

当比较的字符中出现的第一个不同,则返回前者形参-后者形参的值

 

n  查找字符函数

char *strchr(const char *, int);

当找到第一个相同的字符,则返回该字符的地址,否则返回NULL

 

n  字符串拼接函数(接到前者后面)

   char *strncat(char *, const char *, size_t n);

   size_t n: 最大拼接字符个数

 

n  查找字串

   char *strstr(const char *s1, const char *s2);

   返回 s2字符串在s1字符串中第一次出现的位置

   找不到对应的字串, 返回NULL;

n  字符串分割函数

   char *strtok(char *src, const char *demi);

   1.strtok 把src字符串中所有的分隔符变成'\0'

   2.直接修改原字符串

   3.只有第一调用的时候需要传递字符串的首地址, 从第二次开始需

     要传递NULL

int  atoi(const char *);

   把数字字符串转换成整型

 

 

 

以下包含在ctype.h文件中

n isalnum()//判断字符是否是数字字符或者字母字符, 如果是返回1否则返回0;

 

n isalpha()//判断字符是否是字母字符,如果是返回1否则返回0;

 

n isdigit()//判断字符是否是十进制数字字符,如果是返回1否则返回0;

 

n islower()//判断字符是否是小写字母字符,如果是返回1否则返回0;

 

n isup()//判断字符是否是大写字母字符,如果是返回1否则回0;

 

n isxdigit()//判断字符是否是十六进制数字字符,如果是返回1否则返回0;

 

n tolower()//把大写字符转换为小写字母字符,  返回小写字符;

 

n toupper()//把小写字符转换为大写字母字符, 返回大写字符;

 

n digittoint()//把十六进制数字字符转换为整型,

       

n ishexnumber()//等价isxdigit()

 

n isnumber()//等价isdigit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值