嵌入式技术
前几天小编的文章【为什么你的Code,很难看?】引起了强烈的反响,后台粉丝留言小编写更多类似的文章。
写出让我们看起来专业的C代码,除了上文中要求的规范的变量/函数命名,还需要熟练使用C语言的标准库。当为了数组拷贝自己编写一个for循环的时候(可以用memcpy),其他读者看到这种代码,肯定会感叹程序员的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 类似,但将输出定向到文件而不是标准输出。
int fscanf(FILE *stream, const char *format, ...);这个函数从文件中读取数据,并按照指定格式进行解析。
FILE *fopen(const char *filename, const char *mode);这个函数用于打开文件,以便进行读取或写入操作。
FILE *file = fopen("example.txt", "r");6、fclose:关闭文件。
int fclose(FILE *stream);这个函数用于关闭已打开的文件。
char *fgets(char *s, int size, FILE *stream);这个函数从文件中读取一行文本数据。
int fputs(const char *s, FILE *stream);这个函数将字符串写入文件。
int fgetc(FILE *stream);这个函数用于逐字符读取文件内容。
int fputc(int c, FILE *stream);这个函数将一个字符写入文件。
void rewind(FILE *stream);这个函数用于将文件指针重新设置到文件的开头。
int feof(FILE *stream);这个函数用于检查文件是否已经到达了文件末尾。
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);这个函数用于将字符串拆分为标记。
char str[] = "apple,banana,grape"; char *token = strtok(str, ","); while (token != NULL) { printf("%s ", token); token = strtok(NULL, ","); }
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !