C 语言中的必备函数56


作为一门古老且流行的编程语言,C 语言拥有广泛的标准库,其中包含各种内置函数。这些函数对于高效且有效地编写 C 程序至关重要。本文将探讨 C 语言中必须掌握的 15 个必备函数,以及它们的用途和使用示例。

1. printf() 和 scanf()

这两个函数用于格式化输入和输出。printf() 用于将数据打印到标准输出,而 scanf() 用于从标准输入读取数据。它们是 C 程序中与用户交互的基本方式。
#include
int main() {
int age;
printf("请输入您的年龄:");
scanf("%d", &age);
printf("您的年龄是:%d", age);
return 0;
}

2. malloc() 和 free()

malloc() 和 free() 函数是内存管理的基础。malloc() 分配内存,而 free() 释放已分配的内存。它们允许程序员在运行时动态分配和释放内存。
#include
int main() {
int *ptr = (int *) malloc(sizeof(int));
*ptr = 10;
printf("ptr 指向的值:%d", *ptr);
free(ptr);
return 0;
}

3. strlen()

strlen() 函数返回字符串的长度,即字符数。它是字符串处理中的基本函数,用于确定字符串的大小或比较字符串的长度。
#include
int main() {
char str[] = "Hello";
int len = strlen(str);
printf("字符串 %s 的长度为 %d", str, len);
return 0;
}

4. strcpy() 和 strcat()

strcpy() 函数将一个字符串复制到另一个字符串中,而 strcat() 函数将一个字符串追加到另一个字符串的末尾。它们是字符串操作中常用的函数。
#include
int main() {
char str1[] = "Hello";
char str2[] = "World";
strcpy(str1, str2);
strcat(str1, "!");
printf("合并后的字符串:%s", str1);
return 0;
}

5. strcmp()

strcmp() 函数比较两个字符串。如果字符串相等,它返回 0;如果第一个字符串小于第二个字符串,它返回一个负值;如果第一个字符串大于第二个字符串,它返回一个正值。它是字符串比较中的常用函数。
#include
int main() {
char str1[] = "Hello";
char str2[] = "World";
int result = strcmp(str1, str2);
if (result == 0) {
printf("字符串 %s 和 %s 相等", str1, str2);
} else if (result < 0) {
printf("字符串 %s 小于 %s", str1, str2);
} else {
printf("字符串 %s 大于 %s", str1, str2);
}
return 0;
}

6. abs()

abs() 函数返回给定整数的绝对值(正值)。它是处理整数值的常见函数,用于确定数值的大小。
#include
int main() {
int num = -5;
int abs_num = abs(num);
printf("绝对值:%d", abs_num);
return 0;
}

7. rand()

rand() 函数生成伪随机整数。它用于创建随机数,这在游戏、模拟和密码学等应用中很有用。
#include
int main() {
int random_num = rand();
printf("随机数:%d", random_num);
return 0;
}

8. time()

time() 函数返回自纪元以来的秒数。它是获取当前时间或日期的常见函数,用于日志记录、时钟和定时器等应用中。
#include
int main() {
time_t timer;
time(&timer);
printf("当前时间:%s", ctime(&timer));
return 0;
}

9. exit()

exit() 函数用于正常终止程序。它立即结束程序的执行,并向操作系统返回指定的退出代码。它通常用于清理资源并优雅地关闭程序。
#include
int main() {
exit(EXIT_SUCCESS); // 使用 EXIT_SUCCESS 表示正常退出
return 0; // 这行代码永远不会执行,因为 exit() 会终止程序
}

10. fopen() 和 fclose()

fopen() 函数打开一个文件并返回一个 FILE 指针,用于文件读写操作。fclose() 函数关闭一个已打开的文件,释放与其关联的资源。
#include
int main() {
FILE *fp = fopen("", "w");
fprintf(fp, "Hello, world!");
fclose(fp);
return 0;
}

11. fgetc() 和 fputc()

fgetc() 函数从文件中读取一个字符,而 fputc() 函数将一个字符写入文件中。它们是文件读写操作中的基本函数,用于处理字符级别的输入和输出。
#include
int main() {
FILE *fp = fopen("", "r");
char ch = fgetc(fp);
printf("从文件中读取的字符:%c", ch);
fputc('!', fp);
fclose(fp);
return 0;
}

12. feof()

feof() 函数检查文件指针是否已到达文件末尾。它是一个布尔函数,返回非零值表示已到达文件末尾,否则返回零。
#include
int main() {
FILE *fp = fopen("", "r");
char ch;
while (!feof(fp)) {
ch = fgetc(fp);
printf("%c", ch);
}
fclose(fp);
return 0;
}

13. qsort()

qsort() 函数用于对数组进行排序。它使用快速排序算法,以 O(n log n) 的时间复杂度对元素进行排序。它是一个强大的函数,用于各种排序需求。
#include
int compare(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int arr[] = {5, 3, 1, 2, 4};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("");
return 0;
}

14. bsearch()

bsearch() 函数用于在已排序数组中执行二分查找。它以 O(log n) 的时间复杂度搜索目标元素。它在快速查找特定元素时非常有用。
#include
int compare(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 3;
int *result = bsearch(&target

2025-02-12


上一篇:C语言函数的组成

下一篇:C 语言:面向过程编程必不可少的工具