嵌入式C语言标准库大全

2023-08-24 11:23:37 来源:玩转单片机与嵌入式


【资料图】

前几天小编的文章【为什么你的Code,很难看?】引起了强烈的反响,后台粉丝留言小编写更多类似的文章。 写出让我们看起来专业的C代码,除了上文中要求的规范的变量/函数命名,还需要熟练使用C语言的标准库。当为了数组拷贝自己编写一个for循环的时候(可以用memcpy),其他读者看到这种代码,肯定会感叹程序员的C语言基础不行(为了优化空间除外)。 在本文中,我们将深入研究C语言标准库的不同部分,包括 以及 头文件中包含的函数。我们将介绍这些函数的功能、用途以及提供的C代码示例,以便更好地理解和利用这些功能。 头文件

是C语言标准库中最重要的头文件之一,提供了输入和输出功能。以下是 中常见的一些函数: 1、printf:将格式化的数据输出到标准输出。

int printf(const char *format, ...);
这个函数允许您以指定的格式将数据输出到控制台。
printf("Hello, %s!", "world");
2、scanf:从标准输入中读取格式化的数据。
int scanf(const char *format, ...);
这个函数允许您从键盘等输入设备读取数据,并按照指定格式进行解析。
int age;scanf("%d",&age);

3、fprintf:将格式化的数据输出到文件。

int fprintf(FILE *stream, const char *format, ...);
这个函数与 printf 类似,但将输出定向到文件而不是标准输出。 4、fscanf:从文件中读取格式化的数据。
int fscanf(FILE *stream, const char *format, ...);
这个函数从文件中读取数据,并按照指定格式进行解析。 5、fopen:打开文件以进行读写操作。
FILE *fopen(const char *filename, const char *mode);
这个函数用于打开文件,以便进行读取或写入操作。
FILE *file = fopen("example.txt", "r");
6、fclose:关闭文件。
int fclose(FILE *stream);
这个函数用于关闭已打开的文件。 7、fgets:从文件中读取一行数据。
char *fgets(char *s, int size, FILE *stream);
这个函数从文件中读取一行文本数据。 8、fputs:将字符串写入文件。
int fputs(const char *s, FILE *stream);
这个函数将字符串写入文件。 9、fgetc:从文件中读取一个字符。
int fgetc(FILE *stream);
这个函数用于逐字符读取文件内容。 10、fputc:将一个字符写入文件。
int fputc(int c, FILE *stream);
这个函数将一个字符写入文件。 11、rewind:将文件指针移动到文件的开头。
void rewind(FILE *stream);
这个函数用于将文件指针重新设置到文件的开头。 12、feof:检查文件结束标志。
int feof(FILE *stream);
这个函数用于检查文件是否已经到达了文件末尾。

头文件

是另一个重要的C语言标准库头文件,它包含了一组通用的实用函数,用于内存分配、随机数生成、排序等任务。以下是 中常见的一些函数:

1、malloc:分配动态内存。

void *malloc(size_t size);
这个函数用于在堆上分配一块指定大小的内存。
int *arr = (int *)malloc(5 * sizeof(int));
2、calloc:分配并初始化动态内存。
void *calloc(size_t num_elements, size_t element_size);
这个函数用于分配一块指定大小的内存,并将所有字节初始化为零。
int *arr = (int *)calloc(5, sizeof(int));
3、realloc:重新分配动态内存的大小。
void *realloc(void *ptr, size_t size);
这个函数用于更改已分配内存块的大小。
arr = (int *)realloc(arr, 10 * sizeof(int));
4、free:释放动态分配的内存。
void free(void *ptr);
这个函数用于释放先前分配的内存块。
free(arr);
5、rand:生成伪随机数。
int rand(void);
这个函数用于生成一个伪随机整数。
int random_number = rand();
6、srand:设置随机数生成的种子。
void srand(unsigned int seed);
这个函数用于设置伪随机数生成的种子值。
srand(42);
7、abs:计算整数的绝对值。
int abs(int n);
这个函数用于计算整数的绝对值。
int absolute_value = abs(-5);
8、atoi:将字符串转换为整数。
int atoi(const char *str);
这个函数用于将字符串转换为整数。
int number = atoi("42");
9、atof:将字符串转换为浮点数。
double atof(const char *str);
这个函数用于将字符串转换为浮点数。
double pi= atof("3.14159");
10、exit:终止程序的执行。
void exit(int status);
这个函数用于正常或异常终止程序的执行。
exit(0); // 正常退出
11、system:执行系统命令。
int system(const char *command);
这个函数用于执行操作系统命令。
system("ls -l");
12、qsort:对数组进行快速排序。
void qsort(void *base, size_t num_elements, size_t element_size, int (*compare_function)(const void *, const void *));
这个函数用于对数组进行快速排序。
int compare(const void *a, const void *b) {return (*(int *)a - *(int *)b);}int arr[] = {5, 2, 9, 1, 5};qsort(arr, 5, sizeof(int), compare);
头文件中的函数

头文件提供了处理字符串的函数,包括字符串复制、连接、比较等操作。以下是 中常见的一些函数:

1、strcpy:将一个字符串复制到另一个字符串。

char *strcpy(char *dest, const char *src);
这个函数用于将一个字符串复制到另一个字符串。
char destination[20];char source[] = "Hello, world!";strcpy(destination, source);
2、strcat:将一个字符串附加到另一个字符串。
char *strcat(char *dest, const char *src);
这个函数用于将一个字符串附加到另一个字符串。
char str1[20] = "Hello, ";char str2[] = "world!";strcat(str1, str2);

3、strlen:计算字符串的长度。

size_t strlen(const char *s);
这个函数用于计算字符串的长度。
char str[] = "Hello";size_t length = strlen(str);
4、strcmp:比较两个字符串。
int strcmp(const char *s1, const char *s2);
这个函数用于比较两个字符串。
char str1[] = "apple";char str2[] = "banana";int result = strcmp(str1, str2);
5、strncmp:比较两个字符串的前 n 个字符。
int strncmp(const char *s1, const char *s2, size_t n);
这个函数用于比较两个字符串的前 n 个字符。
char str1[] = "apple";char str2[] = "appetizer";int result = strncmp(str1, str2, 3);
6、strchr:在字符串中查找指定字符的第一次出现。
char *strchr(const char *s, int c);
这个函数用于在字符串中查找指定字符的第一次出现。
char str[] = "Hello, world!";char *result = strchr(str, "w");
7、strstr:在字符串中查找指定子字符串的第一次出现。
char *strstr(const char *haystack, const char *needle);
这个函数用于在字符串中查找指定子字符串的第一次出现。
char str[] = "The quick brown fox";char *result = strstr(str, "brown");
8、strtok:将字符串拆分为标记。
char *strtok(char *str, const char *delimiters);
这个函数用于将字符串拆分为标记。
charstr[]="apple,banana,grape";char *token = strtok(str, ",");while (token != NULL) {printf("%s", token);token = strtok(NULL, ",");}
这些函数提供了对字符串、内存块和文件的常见操作,是C语言编程中的重要工具。通过使用这些函数,您可以高效地处理输入输出、内存分配和字符串操作等任务,从而提高效率并简化代码。C语言标准库的强大之处在于其简洁性和灵活性,加上标准库的支持,使其成为许多开发人员的首选编程语言之一。希望本文能够帮助您更好地理解和利用C语言标准库中的函数,提高您的C编程技能。

审核编辑:汤梓红

标签:

上一篇:IGBT的特点、工作原理及安全工作区
下一篇:最后一页