【C语言】常用函数汇总表

news2024/11/24 19:07:22

LuckiBit

目录

    • 1. C语言常用函数汇总表(概念功能)
      • 1.1 输入/输出函数(`<stdio.h>`)
      • 1.2 字符串操作函数(`<string.h>`)
      • 1.3 内存管理函数(`<stdlib.h>`)
      • 1.4 数学函数(`<math.h>`)
      • 1.5 时间函数(`<time.h>`)
      • 1.6 文件操作函数(`<stdio.h>`)
      • 1.7 布尔类型及相关函数(`<stdbool.h>`)
      • 1.8 其他常用函数
    • 2. C语言常用函数汇总表(标准格式)
      • 2.1 输入/输出函数(`<stdio.h>`)
      • 2.2 字符串操作函数(`<string.h>`)
      • 2.3 内存管理函数(`<stdlib.h>`)
      • 2.4 数学函数(`<math.h>`)
      • 2.5 时间函数(`<time.h>`)
      • 2.6 文件操作函数(`<stdio.h>`)
      • 2.7 布尔类型及相关函数(`<stdbool.h>`)
      • 2.8 综合示例代码
        • 2.8.1 输出结果
        • 2.8.2 代码说明
    • 3. 结束语
    • 相关文章:

1. C语言常用函数汇总表(概念功能)

以下是每个函数的概念功能和使用,按类别分类并以表格表示。

1.1 输入/输出函数(<stdio.h>

函数名概念功能使用示例
printf用于格式化输出数据到标准输出设备(通常是屏幕)。支持多种格式说明符,用于输出字符串、整数、浮点数等。printf("Hello, World! %d\n", 2024);
scanf从标准输入设备(通常是键盘)读取格式化数据。支持多种格式说明符,用于输入整数、浮点数、字符等。scanf("%d", &num);
puts将字符串输出到标准输出设备,并在末尾自动添加换行符。puts("Hello, World!");
getchar从标准输入读取一个字符,常用于获取用户输入的单个字符。char c = getchar();
putchar将一个字符输出到标准输出设备。putchar('A');

1.2 字符串操作函数(<string.h>

函数名概念功能使用示例
strcpy将源字符串复制到目标字符串。目标字符串必须有足够的空间。strcpy(dest, src);
strncpy将源字符串的前n个字符复制到目标字符串。目标字符串必须有足够的空间。strncpy(dest, src, 5);
strcat将源字符串连接到目标字符串的末尾。strcat(dest, src);
strlen返回字符串的长度,不包括空字符\0size_t len = strlen(str);
strcmp比较两个字符串,返回负值、零或正值,分别表示前者小于、等于或大于后者。if (strcmp(str1, str2) == 0) { ... }
strstr查找字符串中第一次出现的子串,返回指向该子串的指针。char *pos = strstr(str, "World");

1.3 内存管理函数(<stdlib.h>

函数名概念功能使用示例
malloc动态分配指定字节数的内存块,返回指向该内存的指针。int *arr = (int *)malloc(5 * sizeof(int));
calloc动态分配内存并初始化为零,适用于数组。int *arr = (int *)calloc(5, sizeof(int));
realloc调整已分配内存块的大小,可能移动内存块。arr = (int *)realloc(arr, 10 * sizeof(int));
free释放之前使用malloccallocrealloc分配的内存。free(arr);

1.4 数学函数(<math.h>

函数名概念功能使用示例
pow计算一个数的指定幂次,返回结果。double result = pow(2.0, 3.0);
sqrt计算平方根,返回结果。double root = sqrt(16.0);
sin计算弧度的正弦值,返回结果。double s = sin(3.14159 / 2);
cos计算弧度的余弦值,返回结果。double c = cos(0.0);
tan计算弧度的正切值,返回结果。double t = tan(3.14159 / 4);
log计算自然对数,返回结果。double ln = log(2.71828);

1.5 时间函数(<time.h>

函数名概念功能使用示例
time返回自1970年1月1日以来的秒数(Unix时间戳)。如果参数不为NULL,则同时将值存储在参数指针指向的变量中。time_t now = time(NULL);
difftime返回两个时间点之间的时间差,以秒为单位。double diff = difftime(time2, time1);
clock返回程序执行时间,以时钟周期为单位。常用于测量程序运行时间。clock_t start = clock();
strftime根据指定的格式将时间转换为字符串,常用于格式化输出时间。strftime(buf, 100, "%Y-%m-%d", timeinfo);

1.6 文件操作函数(<stdio.h>

函数名概念功能使用示例
fopen打开文件并返回文件指针,支持多种模式(如读、写、追加等)。FILE *fp = fopen("file.txt", "r");
fclose关闭文件,释放相关资源。fclose(fp);
fread从文件读取数据到内存中,常用于二进制文件读取。fread(buffer, sizeof(char), 100, fp);
fwrite将内存中的数据写入文件,常用于二进制文件写入。fwrite(data, sizeof(char), 100, fp);
fscanf从文件读取格式化数据,类似于scanf,但从文件读取而不是标准输入。fscanf(fp, "%d", &num);
fprintf向文件写入格式化数据,类似于printf,但输出到文件而不是标准输出。fprintf(fp, "Value: %d\n", num);

1.7 布尔类型及相关函数(<stdbool.h>

函数名概念功能使用示例
bool定义布尔类型,bool_Bool的别名,用于表示真值和假值。bool isEven = (num % 2 == 0);
true表示真,布尔类型的常量,值为1if (isEven == true) { printf("Even number.\n"); }
false表示假,布尔类型的常量,值为0if (isEven == false) { printf("Odd number.\n"); }

1.8 其他常用函数

函数名概念功能使用示例
#define宏定义,用于定义常量或宏函数,在编译时进行替换。#define PI 3.14159
typedef为现有类型定义新的名称,常用于简化复杂类型声明。typedef unsigned long ulong;
enum定义枚举类型,用于表示一组相关的常量。enum Color { RED, GREEN, BLUE };
struct定义结构体,用于聚合不同类型的变量。struct Point { int x; int y; };
sizeof返回类型或变量的大小(以字节为单位)。size_t size = sizeof(int);
typecast类型转换,用于将一种数据类型转换为另一种。double num = (double)intVar;

通过这些表格和示例,你可以掌握C语言中各类常用函数的功能和使用方法。如果你需要进一步深入了解某个函数或需要更多示例,随时告诉我!

2. C语言常用函数汇总表(标准格式)

以下是按类别分类的C语言常用函数汇总表,包含所属头文件、函数的标准格式及简单的示例代码。表格之后的示例代码综合展示了这些函数的使用,并包含了详细的注释。

2.1 输入/输出函数(<stdio.h>

所属头文件函数名标准格式示例代码
<stdio.h>printfint printf(const char *format, ...);printf("Hello, World!\n");
scanfint scanf(const char *format, ...);scanf("%d", &num);
putsint puts(const char *str);puts("Hello, World!");
getcharint getchar(void);char c = getchar();
putcharint putchar(int char);putchar('A');

2.2 字符串操作函数(<string.h>

所属头文件函数名标准格式示例代码
<string.h>strcpychar *strcpy(char *dest, const char *src);strcpy(dest, src);
strncpychar *strncpy(char *dest, const char *src, size_t n);strncpy(dest, src, 5);
strcatchar *strcat(char *dest, const char *src);strcat(dest, src);
strlensize_t strlen(const char *str);size_t len = strlen(str);
strcmpint strcmp(const char *str1, const char *str2);if (strcmp(str1, str2) == 0) { ... }
strstrchar *strstr(const char *haystack, const char *needle);char *pos = strstr(str, "World");

2.3 内存管理函数(<stdlib.h>

所属头文件函数名标准格式示例代码
<stdlib.h>mallocvoid *malloc(size_t size);int *arr = (int *)malloc(5 * sizeof(int));
callocvoid *calloc(size_t nmemb, size_t size);int *arr = (int *)calloc(5, sizeof(int));
reallocvoid *realloc(void *ptr, size_t size);arr = (int *)realloc(arr, 10 * sizeof(int));
freevoid free(void *ptr);free(arr);

2.4 数学函数(<math.h>

所属头文件函数名标准格式示例代码
<math.h>powdouble pow(double base, double exponent);double result = pow(2.0, 3.0);
sqrtdouble sqrt(double x);double root = sqrt(16.0);
sindouble sin(double x);double s = sin(3.14159 / 2);
cosdouble cos(double x);double c = cos(0.0);
tandouble tan(double x);double t = tan(3.14159 / 4);
logdouble log(double x);double ln = log(2.71828);

2.5 时间函数(<time.h>

所属头文件函数名标准格式示例代码
<time.h>timetime_t time(time_t *tloc);time_t now = time(NULL);
difftimedouble difftime(time_t end, time_t start);double diff = difftime(t2, t1);
clockclock_t clock(void);clock_t start = clock();
strftimesize_t strftime(char *s, size_t max, const char *format, const struct tm *tm);strftime(buf, 100, "%Y-%m-%d", timeinfo);

2.6 文件操作函数(<stdio.h>

所属头文件函数名标准格式示例代码
<stdio.h>fopenFILE *fopen(const char *filename, const char *mode);FILE *fp = fopen("file.txt", "r");
fcloseint fclose(FILE *stream);fclose(fp);
freadsize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);fread(buffer, sizeof(char), 100, fp);
fwritesize_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);fwrite(data, sizeof(char), 100, fp);
fscanfint fscanf(FILE *stream, const char *format, ...);fscanf(fp, "%d", &num);
fprintfint fprintf(FILE *stream, const char *format, ...);fprintf(fp, "Value: %d\n", num);

2.7 布尔类型及相关函数(<stdbool.h>

所属头文件函数名标准格式示例代码
<stdbool.h>booltypedef _Bool bool;bool isEven = (num % 2 == 0);
true#define true 1if (isEven == true) { printf("Even number.\n"); }
false#define false 0if (isEven == false) { printf("Odd number.\n"); }

2.8 综合示例代码

以下示例代码综合使用了C语言的常用函数和布尔类型,并包含了详细的注释。代码最后还包括输出结果。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <stdbool.h>

int main() {
    // 输入/输出示例
    int num;
    printf("Enter a number: ");  // 提示用户输入一个数字
    scanf("%d", &num);  // 读取用户输入的数字
    printf("You entered: %d\n", num);  // 输出用户输入的数字

    // 使用布尔类型判断是否为偶数
    bool isEven = (num % 2 == 0);  // 判断数字是否为偶数
    if (isEven) {
        printf("%d is an even number.\n", num);  // 如果是偶数,输出相关信息
    } else {
        printf("%d is an odd number.\n", num);  // 如果是奇数,输出相关信息
    }

    // 字符串操作示例
    char str1[20], str2[20] = "Hello, World!";
    strcpy(str1, str2);  // 将str2复制到str1
    printf("str1: %s\n", str1);  // 输出str1的内容

    // 内存管理示例
    int *arr = (int *)malloc(5 * sizeof(int));  // 动态分配内存
    if (arr != NULL) {
        for (int i = 0; i < 5; i++) {
            arr[i] = i + 1;  // 初始化数组元素,从1开始递增
        }
        printf("Array contents: ");
        for (int i = 0; i < 5; i++) {
            printf("%d ", arr[i]);  // 输出数组内容
        }
        printf("\n");
        free(arr);  // 释放动态分配的内存
    } else {
        printf("Memory allocation failed!\n");  // 如果内存分配失败,输出错误信息
    }

    // 数学函数示例
    double result = pow(2.0, 3.0);  // 计算2的3次幂
    printf("2^3 = %.2f\n", result);  // 输出计算结果

    // 时间函数示例
    time_t now = time(NULL);  // 获取当前时间
    printf("Current time: %s", ctime(&now));  // 输出当前时间

    return 0;
}
2.8.1 输出结果

假设用户输入的数字为7,则输出结果如下:

Enter a number: 7
You entered: 7
7 is an odd number.
str1: Hello, World!
Array contents: 1 2 3 4 5 
2^3 = 8.00
Current time: Tue Aug 13 12:34:56 2024
2.8.2 代码说明
  • 输入/输出示例:使用printf输出提示信息,使用scanf获取用户输入,并使用printf再次输出结果。
  • 布尔类型判断:使用<stdbool.h>中的bool类型判断输入数字是奇数还是偶数,并使用truefalse分别进行逻辑判断。
  • 字符串操作:使用strcpy函数将一个字符串复制到另一个字符串,并输出结果。
  • 内存管理:使用malloc动态分配内存,初始化分配的数组,并输出数组内容,最后释放内存。
  • 数学函数:使用pow函数计算2的3次幂,并格式化输出结果。
  • 时间函数:使用time函数获取当前时间,并使用ctime将时间转换为可读格式输出。

这段代码演示了如何在C语言中使用多种常用函数和布尔类型。通过这些示例,您可以更好地理解C语言的基本功能和标准库函数的用法。

3. 结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言中常用函数有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持!点我关注❤️

相关文章:

  • 指针的神秘探险:从入门到精通的奇幻之旅 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036156.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快排/堆排/归并/冒泡/

常见的内排序算法 插入排序 直接插入排序 原理&#xff1a;相当于扑克牌变成有序&#xff0c;先拿第一张&#xff0c;把他调节成有序&#xff0c;再拿第二张&#xff0c;与第一张相比找到第二张的位置&#xff0c;再继续拿第三张&#xff0c;以此类推。 void InsertSort(in…

Jupyter Notebook修改文件的默认保存路径

1&#xff0c;安装好后Jupyter Notebook的默认保存路径为用户文件夹&#xff0c; 在jupyter中新建的文件会保存在这里 2&#xff0c;新建一个自己想用来存放Jupyter文件的文件夹 3&#xff0c;找到jupyter的config文件&#xff0c;jupyter_notebook_config.py 4&#xff0c;…

俞敏洪,真窝囊?

文&#xff5c;琥珀食酒社 作者 | 璇子 大家都被俞敏洪骗了 当年《中国合伙人》一播出 俞敏洪竟抱怨黄晓明说&#xff1a; “你把我演得太窝囊&#xff01;” 那俞敏洪真的不窝囊吗&#xff1f; 他培养出董宇辉 让他赚了近6亿 结果人没留住、公司也送了人 还要被丈母娘…

NextJS 服务器端代码调试

NextJS 中如何调试服务器端代码&#xff0c;根据官方文档设置 Chrome 调试&#xff0c;这里有个坑&#xff0c;来看下面配置&#xff1a; {"scripts": {"dev": "NODE_OPTIONS--inspect next dev"} }启动成功&#xff0c;有两个端口 9229、9230&…

企业文件加密软件有哪些,2024常用十款文件加密软件推荐

在当今数字化办公环境中&#xff0c;企业文件加密软件是保护商业秘密和敏感数据的关键工具。随着网络攻击和数据泄露事件的增多&#xff0c;选择一款能够提供强有力保护的文件加密软件显得尤为重要。2024年&#xff0c;市场上出现了一系列新的文件加密解决方案&#xff0c;它们…

如何选择企业差旅管理平台?差旅降本指南

企业差旅管理的能力已成为企业运营成本管理的重要一环。如何选择一个高效且可以定制化的差旅管理平台,已成为众多企业降本增效的焦点。本文将结合当前差旅管理的最新理论和技术趋势,来探讨企业如何选择适合自己的差旅管理平台。 第一,选择差旅管理平台的关键因素 1. 差旅预订便…

二级域名分发系统

介绍&#xff1a; 一个不错的二级域名租用系统代码。 二级域名分发系统的用法&#xff1a;弄几个已经备案的域名分发一下赚点小钱&#xff0c;自己也用了&#xff0c;别人也用了&#xff0c;然后也回本了&#xff0c;搞得好还可以挣点小钱。 不懂的就不要下载了。 代码下载…

全网最最最详细的haproxy详解!!!

1 什么是负载均衡 负载均衡&#xff08;Load Balancing&#xff09;是一种将网络请求或工作负载分散到多个服务器或计算机资源上的技术&#xff0c;以实现优化资源使用、提高系统吞吐量、增强数据冗余和故障容错能力、以及减少响应时间的目的。在分布式系统、云计算环境、Web服…

day28-lsync服务+scp命令

假设nfs服务器挂了&#xff0c;就要走backup服务器也部署nfs 这种情况下&#xff0c;rsync和nfs要用到同一个文件夹&#xff0c; 所以他俩管理文件夹权限必须一样 1. lsyncrsyncnfs rsync服务 10.0.0.41 1.安装rsync [rootbackup:~]#yum -y install rsync 2.配置rsync[root…

在Notebook中使用backtrader绘图出现 Javascript Error: IPython is not defined

01背景说明 首先&#xff0c;说明一下背景。我的电脑在2024年6月时使用backtrader进行cerebro.plot()是没有问题的&#xff0c;图能够在Notebook中正常显示&#xff0c;没有错误提示。 2024年7月下旬&#xff0c;连续学习和试用了好几个AI工具后&#xff0c;我鬼使神差点了No…

【实现100个unity特效之20】用unity实现物品悬浮和发光像素粒子特效

最终效果 文章目录 最终效果新增飞升粒子效果光圈效果修改不同颜色完结 新增飞升粒子效果 效果 光圈效果 效果 修改不同颜色 完结 赠人玫瑰&#xff0c;手有余香&#xff01;如果文章内容对你有所帮助&#xff0c;请不要吝啬你的点赞评论和关注&#xff0c;你的每一次支持…

Linux硬件-raid(软件版)

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 RAID 在一般的品牌服务器里面基本上都有一个叫阵列卡的硬件&#xff0c;硬盘先连接到阵列卡上面&#xff0c;然后阵列卡再连…

【JavaEE初阶】文件操作和IO

目录 &#x1f334;认识文件 &#x1f6a9;树型结构组织和目录 &#x1f6a9;文件路径&#xff08;Path&#xff09; &#x1f6a9; 文件分类 &#x1f38d;Java 中操作文件 &#x1f6a9; File 概述&#xff1a; &#x1f4cc;属性 &#x1f4cc;构造方法 &#x1f4c…

【解压即玩】电脑端CoinOps整合222G,带遮罩和滤镜,复古拉满

这是另外一种风格的整合包&#xff0c;你可以认为是皮肤&#xff1a; 每选择一个游戏&#xff0c;游戏光碟的封面都会变大&#xff0c;非常的漂亮。 玩起来时游戏界面和另外一种是一样的&#xff1a; 解压即玩。 立即下载&#xff1a;【chumenx.com】【解压即玩】电脑端CoinO…

C的温故而知新:文件输入/输出(C Primer Plus第十三章)

第十三章&#xff1a;文件输入/输出 编写程序&#xff0c;对文件的操作是肯定会遇到的&#xff0c;无论是使用那种语言&#xff0c;都可能会遇到这样类似的需求&#xff0c;因为系统的目的是为人们日常生产生活提供便利&#xff0c;难免会遇到文件的使用。在这一章&#xff0c…

extern关键字及c++中(隐式类型转换时)的引用

int i 0; double db i;//隐式类型转换 const double& rd i; const float rf i;

Ubuntu视频工具

1. VLC VLC Media Player&#xff08;VLC多媒体播放器&#xff09;&#xff0c;最初命名为VideoLAN客户端&#xff0c;是VideoLAN品牌产品&#xff0c;是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式&#xff0c;并支持DVD影音光盘&#xff0c;VCD影音光…

【吊打面试官系列-Elasticsearch面试题】对于 GC 方面,在使用 Elasticsearch 时要注意什么?

大家好&#xff0c;我是锋哥。今天分享关于 【对于 GC 方面&#xff0c;在使用 Elasticsearch 时要注意什么&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 对于 GC 方面&#xff0c;在使用 Elasticsearch 时要注意什么&#xff1f; 1、SEE 2、倒排词典的索引需…

IP地址与DNS的关系

IP地址和DNS是网络架构中的重要组成部分。IP地址是计算机网络中用于标识设备的唯一地址&#xff0c;而DNS则是负责将域名解析为IP地址的系统。记下来将讲述DNS的构成与IP地址的共同协作。 DNS的构成与工作原理 DNS是互联网的核心服务之一&#xff0c;其主要功能是将输入的域名…

【论文泛读】ZKML: An Optimizing System for ML Inference in Zero-Knowledge Proofs

文章目录 介绍主要工作实验数据实验数据1实验数据2实验数据3 介绍 这篇文章发在EuroSys2024&#xff0c;EuroSys是CCFA顶会。作者是来自MIT&#xff0c;伯克利等高校。文章对GPT-2大语言模型实现了零知识可验证执行&#xff0c;但不涉及零知识可验证训练。文章采用Halo2的方案…