c语言 - 常用函数

本文详细介绍了C语言中的标准库函数,包括stdlib.h、string.h和math.h中的关键函数,如atoi、strchr、sqrt及内存操作函数等。解析了它们的功能、参数和返回值,为C语言开发者提供了实用的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

stdlib.h

int atoi(const char *str):转换为int
long int atol(const char *str):转换为long int
double atof(const char *str):转换为double
void abort(void):终止一个程序
int atexit(void (*func)(void)):当程序正常终止时,调用函数func
char *getenv(const char *name):获取环境变量
int system(const char *command):传递命令给系统执行
int abs(int x):返回x的绝对值
long int labs(long int x):返回x的绝对值

 

string.h

​
char *strchr(const char *str, int c):在参数 str 所指向的字符串中搜索第一次出现字符 c 的位置
char *strrchr(const char *str, int c):在参数 str 所指向的字符串中搜索最后一次出现字符 c 的位置
int strcmp(const char *str1, const char *str2):把 str1 所指向的字符串和 str2 所指向的字符串进行比较
int strncmp(const char *str1, const char *str2, size_t n):把 str1 和 str2 进行比较,最多比较前 n 个字节
void *memchr(const char *str, int c, size_t n):在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c 的位置
int memcmp(const void *str1, const void *str2, size_t n):把 str1 和 str2 的前 n 个字节进行比较
char *strncat(char *dest, const char *src, size_t n):把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止
char *strncpy(char *dest, const char *src, size_t n):把 src 所指向的字符串复制到 dest,最多复制 n 个字符
size_t strlen(const char *s); 计算指定指定字符串s的长度,不包含字符串结束符‘\0’
char *strcpy(char *dest, const char *src); 把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝过去
char *strcat(char *dest, const char *src); 将src字符串连接到dest的尾部,‘\0’也会追加过去
char *strstr(const char *haystack, const char *needle);在字符串haystack中查找字符串needle出现的位置,返回第一次出现的needle地址

​

String 常用函数的实现:

math.h

定义了各种数学函数,在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果

double modf(double x, double *integer):返回值为小数部分,并设置integer为整数部分
double pow(double x, double y):返回x的y次幂
double sqrt(double x):返回x的平方根
double fabs(double x):返回x的绝对值

 

常用的内存操作处理函数

   void *memset(void *s, int c, size_t n);
/*功能:将s的内存区域的前n个字节以参数c填入
参数:
    s:需要操作内存s的首地址
    c:填充的字符,c虽然参数为int,但必须是unsigned char , 范围为0~255
    n:指定需要设置的大小
返回值:s的首地址
*/


void *memcpy(void *dest, const void *src, size_t n);
/*功能:拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。
参数:
    dest:目的内存首地址
    src:源内存首地址,注意:dest和src所指的内存空间不可重叠
    n:需要拷贝的字节数
返回值:dest的首地址
*/


void *memmove(void *dest, const void *src, size_t n);
/*memmove()功能用法和memcpy()一样,区别在于:dest和src所指的内存空间重叠时,memmove()仍然能处理,不过执行效率比memcpy()低些。*/


int memcmp(const void *s1, const void *s2, size_t n);
/*功能:比较s1和s2所指向内存区域的前n个字节
参数:
    s1:内存首地址1
    s2:内存首地址2
    n:需比较的前n个字节
返回值:
    相等:=0
    大于:>0
    小于:<0
*/


void *malloc(size_t size);
/*功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用memset初始化。
参数:
    size:需要分配内存大小(单位:字节)
返回值:
成功:分配空间的起始地址
失败:NULL*/


void free(void *ptr);
功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。



 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kevin@1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值