C語言常用函式 筆試常用

2021-09-11 23:04:36 字數 3018 閱讀 8647

在公司筆試時經常需要呼叫或者實現c語言中的一些函式。主要包括:1、字串處理函式。2、記憶體操作函式。

字串處理函式:

size_t strlen(const char *s);

/*功能:計算指定指定字串s的長度,不包含字串結束符『\0』

引數:返回值:字串s的長度,size_t為unsigned int型別

*//*char *strcpy(char *dest, const char *src);

功能:把src所指向的字串複製到dest所指向的空間中,'\0'也會拷貝過去

引數:返回值:

失敗:null

*/int strcmp(const char *s1, const char *s2);

/*功能:比較 s1 和 s2 的大小

引數:返回值:

相等:0

大於:>0

小於:<0

*/

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

/*功能:將src字串連線到dest的尾部,『\0』也會追加過去

引數:返回值:

失敗:null

*/char *strstr(const char *haystack, const char *needle);

/*功能:在字串haystack中查詢字串needle出現的位置

引數:返回值:

*/char *strtok(char *str, const char *delim);

/*功能:來將字串分割成乙個個片段。當strtok()在引數s的字串中發現引數delim中包含的分割字元時, 則會將該字元改為\0 字元,當連續出現多個時只替換第乙個為\0。

引數: str:指向欲分割的字串

delim:為分割字串中包含的所有字元

返回值:

失敗:null

注意:在第一次呼叫時:strtok()必需給予引數s字串

往後的呼叫則將引數s設定成null,每次呼叫成功則返回指向被分割出片段的指標

*///strtok呼叫演示

char a[100] = "adc*fvcv*ebcy*hghbdfg*casdert";

char *s = strtok(a, "*");//將"*"分割的子串取出

while (s != null)

int sprintf(char *str, const char *format, ...);

/*功能:根據引數format字串來轉換並格式化資料,然後將結果輸出到str指定的空間中,直到出現字串結束符 '\0' 為止。

引數: format:字串格式,用法和printf()一樣

返回值:

成功:實際格式化的字元個數

失敗: - 1

*/int sscanf(const char *str, const char *format, ...);

/*功能:從str指定的字串讀取資料,並根據引數format字串來轉換並格式化資料。

引數: format:字串格式,用法和scanf()一樣

返回值:

成功:實際讀取的字元個數

失敗: - 1

*/

int atoi(const char *nptr);

/*功能:atoi()會掃瞄nptr字串,跳過前面的空格字元,直到遇到數字或正負號才開始做轉換,而遇到非數字或字串結束符('\0')才結束轉換,並將結果返回返回值。

引數: nptr:待轉換的字串

返回值:成功轉換後整數

*/char*itoa(int value,char*string,int radix);

/*功能:int value 被轉換的整數,char *string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8,10,16 進製等

引數: value:需要轉換的值

char *str:字串首位址

radix:基數,也就是需要轉換的進製數

返回值:函式返回乙個指向 str,無錯誤返回。

2、記憶體操作函式

void *memset(void *s, int c, size_t n);

/*功能:將s的記憶體區域的前n個位元組以引數c填入

引數: c:填充的字元,c雖然引數為int,但必須是unsigned char , 範圍為0~255

n:指定需要設定的大小

*/void *memcpy(void *dest, const void *src, size_t n);

引數: n:需要拷貝的位元組數

*/void *memmove(void *dest, const void *src, size_t n);

/*memmove()功能用法和memcpy()一樣,區別在於:dest和src所指的記憶體空間重疊時,memmove()仍然能處理,不過執行效率比memcpy()低些。*/

int memcmp(const void *s1, const void *s2, size_t n);

/*功能:比較s1和s2所指向記憶體區域的前n個位元組

引數: n:需比較的前n個位元組

返回值:

相等:=0

大於:>0

小於:<0

*/void *malloc(size_t size);

/*功能:在記憶體的動態儲存區(堆區)中分配一塊長度為size位元組的連續區域,用來存放型別說明符指定的型別。分配的記憶體空間內容不確定,一般使用memset初始化。

引數: size:需要分配記憶體大小(單位:位元組)

返回值:

失敗:null

注意:對應的還有,void *calloc(size_t n, size_t size);

void *realloc(void *mem_address, unsigned int newsize);

*/void free(void *ptr);

引數:返回值:無

*/

C語言常用函式筆記

strcmp 比較字串 sscanf 讀取格式化的字串中的資料 memset 初始化記憶體的 萬能函式 通常為新申請的記憶體進行初始化工作。對一段記憶體空間全部設定為某個字元,一般用在對定義的字串進行初始化為 或 0 snprintf 按照format的格式格式化為字串,然後再將其拷貝至str中。最...

PHP 常用函式筆記

計算字元長度 1個字元utf 8占用3個位元組 param str return int functionmbstrlen str count 0 for i 0 i len i 0x80 return count ajax方式返回資料到客戶端 access protected param mixe...

pandas常用函式筆記

篩選元素,判斷是否存在等 df.isin 判斷df中是否有括號中的元素 dataframe data,index,columns,dtype,copy 構造資料框 data data.isin 可以將符合isin 的元素提取出來構造成乙個新的data dataframe 建立乙個datafram物件...