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

简介: 本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!

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 返回字符串的长度,不包括空字符\0 size_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 表示真,布尔类型的常量,值为1 if (isEven == true) { printf("Even number.\n"); }
false 表示假,布尔类型的常量,值为0 if (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> printf int printf(const char *format, ...); printf("Hello, World!\n");
scanf int scanf(const char *format, ...); scanf("%d", &num);
puts int puts(const char *str); puts("Hello, World!");
getchar int getchar(void); char c = getchar();
putchar int putchar(int char); putchar('A');

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

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

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

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

2.4 数学函数(<math.h>

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

2.5 时间函数(<time.h>

所属头文件 函数名 标准格式 示例代码
<time.h> time time_t time(time_t *tloc); time_t now = time(NULL);
difftime double difftime(time_t end, time_t start); double diff = difftime(t2, t1);
clock clock_t clock(void); clock_t start = clock();
strftime size_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> fopen FILE *fopen(const char *filename, const char *mode); FILE *fp = fopen("file.txt", "r");
fclose int fclose(FILE *stream); fclose(fp);
fread size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); fread(buffer, sizeof(char), 100, fp);
fwrite size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); fwrite(data, sizeof(char), 100, fp);
fscanf int fscanf(FILE *stream, const char *format, ...); fscanf(fp, "%d", &num);
fprintf int fprintf(FILE *stream, const char *format, ...); fprintf(fp, "Value: %d\n", num);

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

所属头文件 函数名 标准格式 示例代码
<stdbool.h> bool typedef _Bool bool; bool isEven = (num % 2 == 0);
true #define true 1 if (isEven == true) { printf("Even number.\n"); }
false #define false 0 if (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. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持
目录
相关文章
|
3月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
44 3
|
1月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
63 10
|
1月前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
51 9
|
1月前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
50 6
|
1月前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
247 6
|
1月前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
64 6
|
1月前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
41 5
|
2月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
60 4
|
2月前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
41 6
|
3月前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
58 10