1. 输入输出函数
printf 和 scanf
printf 函数用于格式化输出,scanf 函数用于格式化输入。
c复制代码
#include <stdio.h> int main() { int num; printf("请输入一个整数: "); scanf("%d", &num); printf("你输入的整数是: %d\n", num); return 0; }
2. 字符串处理函数
strcpy, strcat, strlen, strcmp
这些函数分别用于复制字符串、连接字符串、获取字符串长度和比较字符串。
c复制代码
#include <stdio.h> #include <string.h> int main() { char str1[50] = "Hello, "; char str2[] = "World!"; char str3[100]; // 使用 strcpy 复制字符串 strcpy(str3, str1); printf("%s\n", str3); // 使用 strcat 连接字符串 strcat(str3, str2); printf("%s\n", str3); // 使用 strlen 获取字符串长度 printf("字符串长度为: %zu\n", strlen(str3)); // 使用 strcmp 比较字符串 int result = strcmp(str1, str2); if (result < 0) { printf("str1 小于 str2\n"); } else if (result > 0) { printf("str1 大于 str2\n"); } else { printf("str1 等于 str2\n"); } return 0; }
3. 数学函数
sin, cos, tan, sqrt, pow, fabs
这些函数分别用于计算正弦、余弦、正切、平方根、幂和绝对值。
c复制代码
#include <stdio.h> #include <math.h> int main() { double angle = 45.0; // 角度值需要转换为弧度值 double radians = angle * (M_PI / 180.0); // 转换角度为弧度 // 使用 sin, cos, tan 计算三角函数值 printf("sin(%f) = %f\n", radians, sin(radians)); printf("cos(%f) = %f\n", radians, cos(radians)); printf("tan(%f) = %f\n", radians, tan(radians)); // 使用 sqrt 计算平方根 printf("sqrt(16) = %f\n", sqrt(16.0)); // 使用 pow 计算幂 printf("2^3 = %f\n", pow(2.0, 3.0)); // 使用 fabs 计算绝对值 printf("fabs(-5) = %f\n", fabs(-5.0)); return 0; }
4. 动态内存分配
malloc, free
这些函数用于在运行时动态地分配和释放内存。
c复制代码
#include <stdio.h> #include <stdlib.h> int main() { int n = 5; int *array = (int *)malloc(n * sizeof(int)); // 动态分配内存 if (array == NULL) { printf("内存分配失败\n"); return 1; } // 使用分配的内存 for (int i = 0; i < n; i++) { array[i] = i * i; } // 输出数组内容 for (int i = 0; i < n; i++) { printf("%d ", array[i]); } printf("\n"); // 释放内存 free(array); return 0; }
5. 时间函数
time, localtime, strftime
这些函数用于获取和处理时间。
c复制代码
#include <stdio.h> #include <time.h> int main() { // 获取当前时间(秒为单位) time_t rawtime; time(&rawtime
5. 时间函数
在C语言中,处理时间通常涉及几个标准库函数,如time(), localtime(), 和 strftime()。这些函数允许我们获取系统时间,将其转换为本地时间,并以各种格式显示它。
time() 函数
time() 函数返回从1970年1月1日(UTC)以来的秒数(通常称为Unix时间戳)。这是一个无符号整数,表示从那个时间点到现在经过的秒数。
localtime() 函数
localtime() 函数将Unix时间戳转换为表示本地时间的struct tm结构体。这个结构体包含了年、月、日、小时、分钟、秒等信息。
strftime() 函数
strftime() 函数将struct tm结构体中的时间信息格式化为可读的字符串。你可以指定一个格式字符串来定义字符串的格式。
示例代码
c复制代码
#include <stdio.h> #include <time.h> int main() { // 获取当前时间(Unix时间戳) time_t rawtime; struct tm * timeinfo; time(&rawtime); timeinfo = localtime(&rawtime); // 使用strftime将时间格式化为字符串 char buffer[80]; strftime(buffer, 80, "当前时间是:%Y-%m-%d %H:%M:%S\n", timeinfo); printf(buffer); return 0; }
在这个示例中,我们首先调用time()函数获取当前时间的Unix时间戳,然后使用localtime()函数将其转换为本地时间。接着,我们使用strftime()函数将本地时间格式化为一个字符串,并将其打印出来。
strftime()函数的格式字符串中的%Y、%m、%d、%H、%M和%S分别代表年、月、日、小时、分钟和秒。你可以根据需要自定义这个格式字符串。
6. 文件操作函数
C语言标准库提供了一组用于文件操作的函数,如fopen(), fclose(), fread(), fwrite(), fseek(), ftell()等。这些函数允许我们打开、关闭、读取、写入和定位文件。
fopen() 和 fclose() 函数
fopen()函数用于打开一个文件,并返回一个文件指针。如果文件打开成功,文件指针将指向该文件;如果打开失败,将返回NULL。fclose()函数用于关闭一个已打开的文件。
fread() 和 fwrite() 函数
fread()函数用于从文件中读取数据,fwrite()函数用于向文件中写入数据。这两个函数都接受一个文件指针、一个指向数据缓冲区的指针、要读取或写入的元素数量以及每个元素的大小作为参数。
示例代码
c复制代码
#include <stdio.h> int main() { FILE *file; char buffer[100]; // 打开文件 file = fopen("example.txt", "w"); if (file == NULL) { printf("无法打开文件\n"); return 1; } // 写入文件 fprintf(file, "Hello, World!\n"); // 关闭文件 fclose(file); // 重新打开文件以读取内容 file = fopen("example.txt", "r"); if (file == NULL) { printf("无法打开文件\n"); return 1; } // 读取文件内容 while (fgets(buffer, 100, file) != NULL) { printf("%s", buffer); } // 关闭文件 fclose(file); return 0; }
在这个示例中,我们首先使用fopen()函数以写入模式("w")打开一个名为example.txt的文件,并使用fprintf()函数向文件中写入一条消息。然后,我们关闭文件,并以读取模式("r")重新打开它。我们使用fgets()函数从文件中逐行读取内容,并将其打印到控制台上。最后,我们再次关闭文件。