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

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复制到str1printf("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.rhkb.cn/news/400181.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原创】java+springboot+mysql学业跟踪指导管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Unity物理模块 之 ​2D刚体

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​ 1.刚体是什么 在 Unity 中&#xff0c;刚体&#xff08;Rigidbody&#xff09; 是物理引擎中最基本的组件之一&#x…

根据字典值回显,有颜色的

背景 本项目以若依前端vue2版本为例&#xff0c;项目中有根据字典值回显文本的函数selectDictLabel&#xff0c;但是有时候我们需要带颜色的回显&#xff0c;大概这样的 用法 <template v-slotscope><dict-label :options"dangerLevelOptions" :value&qu…

XXL-JOB分布式定时任务框架快速入门

文章目录 前言定时任务分布式任务调度 1、XXL-JOB介绍1.1 XXL-JOB概述1.2 XXL-JOB特性1.3 整体架构 2、XXL-JOB任务中心环境搭建2.1 XXL-JOB源码下载2.2 IDEA导入xxljob工程2.3 初始化数据库2.4 Docker安装任务管理中心 3、XXL-JOB任务注册测试3.1 引入xxl-job核心依赖3.2 配置…

deepin V23前瞻丨deepin V23与飞腾腾锐D3000完成适配,持续丰富deepin操作系统硬件生态

查看原文 近日&#xff0c;自主核心芯片研发飞腾公司宣布与deepin V23完成适配&#xff0c;包含飞腾新一代桌面CPU飞腾腾锐D3000、FT-2000/64、桌面芯片飞腾腾锐D2000等多款产品&#xff0c;为用户带来更智能、安全、稳定的使用体验。 飞腾腾锐D3000集成8个飞腾自主研发的新一…

Golang多版本环境安装并存

1. 准备 请先安装最新版本的Go&#xff0c;详见 https://go.dev/doc/install go version2. 配置镜像加速 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct3. 安装Go指定版本 Golang官方提供dl工具来实现多版本的Go环境管理&#xff0c;详见项目&#…

小白零基础学数学建模应用系列(二):基于Python的共享单车系统建模与仿真分析

共享单车系统作为一种绿色环保的出行方式&#xff0c;已成为现代城市公共交通的重要组成部分。本文将使用Python编程语言&#xff0c;并结合modsim库&#xff0c;构建并仿真一个共享单车系统的模型&#xff0c;通过这一过程来展示如何进行系统的建模与分析。 文章目录 一、背景…

虚拟化—XenServer安装教程详细(附客户端连接)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

Unity 编写自己的aar库,接收Android广播(broadcastReceiver)并传递到Unity

编写本文是因为找了很多文章&#xff0c;都比较片段&#xff0c;不容易理解&#xff0c;对于Android新手来说理解起来不友好。我这里写了一个针对比较小白的文章&#xff0c;希望有所帮助。 Android端 首先还是先来写Android端&#xff0c;我们新建一个Android空项目&#xf…

重新定义AI绘画体验,Midjourney全面进阶指令指南

前言 在人工智能绘画的世界里,Midjourney无疑是一颗璀璨的明珠。今天,就让我们一同探索这个神奇工具的奥秘,开启一段全新的AI绘画之旅。 一、奇妙之门:Midjourney的本质 与众不同的是,Midjourney并非一个单纯的软件,而是栖身于Discord平台的一位"云端画师"。有别于本…

【微信小程序】网络数据请求

1. 小程序中网络数据请求的限制 2. 配置 request 合法域名 3. 发起 GET 请求 调用微信小程序提供的 wx.request() 方法&#xff0c;可以发起 GET 数据请求&#xff0c;示例代码如下&#xff1a; 4. 发起 POST 请求 调用微信小程序提供的 wx.request() 方法&#xff0c;可以…

(计算机网络)网络层

目录 一.网络层提供哪种服务 二.两种服务的比较 三.ip协议 四.ip地址 五.ip地址的分类 六.子网掩码 七.路由器介绍 一.网络层提供哪种服务 1.ip地址--唯一的标识互联网上的某一台主机 2. 虚电路&#xff1a;虚拟的电路 二.两种服务的比较 ip数据报&#xff0c;不需要建…

Visual Studio Code 安装与 C/C++ 语言运行总结

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Visual Studio Code&#xff08;简称 VS Code&#xff09;是由微软开发的一款轻量级、强大的代码编辑器&#xff0c;支持多种编程语言和开发框架。由于其丰富的插件生态系统和灵活的配置选项&#xff0c;VS…

Layui——隐藏表单项后不再进行验证

目录 修改后的部分代码 修改后的完整代码 我编辑用户信息和添加新用户用的是同一个表单&#xff0c;不同的是编辑用户信息里没有密码项和确认密码项&#xff0c;但是把它们隐藏后仍然要进行验证&#xff0c;也就是说它们俩的验证并没有随着表单项的隐藏而关闭。原因&#xf…

gitlab实现CI/CD自动化部署

gitlab实现CI/CD自动化部署 项目根目录中新增gitlab-ci.yml在gitlab上查看gitlab-runner配置方法配置服务器环境推送代码&#xff0c;触发runner&#xff0c;实现自动构建和部署参考 gitlab支持通过配置CI/CD实现自动化部署我们的代码项目&#xff0c;主要核心就是配置gitlab-c…

【mamba学习】(一)SSM原理与说明

mamba输入输出实现与transformer几乎完全一样的功能&#xff0c;但速度和内存占用具有很大优势。对比transformer&#xff0c;transformer存在记忆有限的情况&#xff0c;如果输入或者预测的序列过长可能导致爆炸&#xff08;非线性&#xff09;&#xff0c;而mamba不存在这种情…

【精通SDL之----SDL_RenderReadPixels截屏】

SDL_RenderReadPixels截屏 前言一、SDL_RenderReadPixels简介二、问题现象三、规避方案1. 离屏纹理2. ding! *灵光一现* 前言 最近使用SDL2在鸿蒙系统(Harmoney OS)上截取视频播放过程中的数据&#xff0c;发现捕获的数据为空&#xff0c;然在windows上却可以正常捕获&#xff…

Linux-软件管理

文章目录 19. 软件管理19.1 linux软件介绍19.2 RPM包概述19.3 RPM软件包安装19.4 RPM软件包依赖问题19.5 DPKG软件包19.6 linux 软件包前端工具19.7 windows 前端工具winget19.8 linux 前端工具yum概述19.9 设置yum远程仓库19.10 yum 软件包管理19.11 epel软件仓库19.12 yum本地…

海康相机二次开发学习笔记1-环境配置

因为最近可以用一段时间海康加密狗,Visionpro二次开发暂时停更一段时间,开始记录一下海康相机二次开发的学习笔记. 环境配置 1. 创建项目 打开Visual Studio,新建.NetFramework项目,选择WindowsForms,点击下一步,选择项目名称,点击下一步,点击确定打开项目属性,点击生成选项…

TED: 1靶场复现【附代码】(权限提升)

机下载地址&#xff1a; Ted: 1 ~ VulnHubTed: 1, made by Avraham Cohen. Download & walkthrough links are available.https://www.vulnhub.com/entry/ted-1,327/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.59.0/24|grep -B 2 00:0C…