天天看點

常用C語言庫函數。

常用C語言庫函數

1. 記憶體操作函數

(int *)malloc(100*sizeof(int));    // #include<stdlib.h>

void *memcpy(void *destin, const void* src, size_t count );  傳回值指向目标存儲區

void *memmove( void* dest, const void* src, size_t count );  傳回值指向目标存儲區

void * memset(void * dest,int ch,size_t count); 傳回值指向被指派的位址區域

void *malloc(size_t size);  傳回值指向被配置設定的區域位址

//安全函數版, 安全函數增加目标位址的長度校驗和傳回值
errno_t memcpy_s(void *dest, size_t destMax, const void *src, size_t count);
errno_t memmove_s(void *dest, size_t destMax, const void *src, size_t count);
errno_t memset_s(void *dest,rsize_t destsz,int ch,rsize_t count)
           

2. 字元串操作函數

size_t strlen(char const* str); 計算字元串長度,不包括 '\0' 結束符。本函數無安全函數版本

size_t strnlen(const char *str, size_t maxlen);  直到碰到第一個字元串結束符'\0'或計數器到達以下的maxlen為止,然後傳回計數器值  //不常用,此函數有安全函數版本

char *strcpy(char* dest, const char *src);  傳回目的位址  strcpy把含有'\0'結束符的字元串複制到另一個位址空間

char *strncpy(char *dest, const char *src, int count);  複制前count個位元組,傳回目的位址。不會自動添加'\0'符号。

char *strcat(char* dest, const char *src); 

char *strncat(char *dest, const char *src, int count); 

int

strcmp

(

const

char

*s1,

const

char

*s2); 一直比較,直到出現不同的字元或者'\0', 

若str1=str2,則傳回零;若str1<str2,則傳回負數;若str1>str2,則傳回正數

//安全函數版本

errno_t strcpy_s(char *dest,  rsize_t destsz,  const char * src);

errno_t strncpy_s(char* dest,  rsize_t destsz,  char * src,  int count);

errno_t strcat_s(char *dest,  rsize_t destsz,  const char * src);

errno_t strncat_s(char* dest,  rsize_t destsz,  char * src,  int count);

3. 格式化輸出

printf("% d % d\n", curLength, maxLength);    // #include<stdio.h>

sprintf(s, "%d", 123);  //把整數123列印成一個字元串儲存在s中

int printf(const char *format, ...); 成功傳回輸出的字元個數,失敗傳回負數

int sprintf(char *string, char *format [,argument,...]);  成功傳回寫入的字元個數,失敗傳回負數

int sprintf_s(char* strDest, size_t destMax, const char* format, ...)  成功傳回寫入的字元個數,失敗傳回負數

int snprintf(char* strDest, size_t count, const char* format, ..);成功傳回寫入的字元個數,失敗傳回負數

int snprintf_s(char* strDest, size_t destMax, size_t count, const char* format, ..);成功傳回寫入的字元個數,失敗傳回負數

4. 格式化輸入

int scanf(const char * restrict format,...); 成功傳回輸入的字元個數,失敗或遇到檔案結束,則傳回EOF,end of file。

scanf函數傳回成功讀入的資料項數,讀入資料時遇到了“檔案結束”則傳回EOF

int scanf_s(const char* restrict format, ...);

scanf_s()用于讀取字元串時,必須提供一個數字以表明最多讀取多少位字元,以防止溢出。輸入整數時,則沒有差別。

如下所示:

scanf_s("%d", &i);

scanf_s("%c", &c, 1);

scanf_s("%s", string, sizeof(string));