前幾天小編的文章【為什么你的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 類似,但將輸出定向到文件而不是標準輸出。 ?
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);這個函數用于檢查文件是否已經到達了文件末尾。 ? ? ?
?
? ? 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, ","); }?
這些函數提供了對字符串、內存塊和文件的常見操作,是C語言編程中的重要工具。通過使用這些函數,您可以高效地處理輸入輸出、內存分配和字符串操作等任務,從而提高效率并簡化代碼。C語言標準庫的強大之處在于其簡潔性和靈活性,加上標準庫的支持,使其成為許多開發人員的首選編程語言之一。
希望本文能夠幫助您更好地理解和利用C語言標準庫中的函數,提高您的C編程技能。 ?
?
審核編輯:湯梓紅
?
評論
查看更多