1. 程式人生 > >C語言基礎復習1

C語言基礎復習1

c語言基礎知識鞏固

  • strlen() 和sizeof()的區別

    1. sizeof()是操作符,可以計算任意類型的大小(包括函數類型)。

2.strlen()是函數, 需要引入頭文件<string.h>,只能計算char* 類型以 ‘\0‘ 結束的字符串的大小。

3. 數組做sizeof()的參數不退化 , 但是傳遞給strlen() 就退化為指針。

4. strlen的結果要在運行的時候才能計算出來,時用來計算字符串的長度,不是類型占內存的大小。

5. sizeof後如果是類型必須加括弧,如果是變量名可以不加括弧。這是因為sizeof是個操作符不是個函數。

  • memset() memcpy() memcmp() memmove(),memchr()實現 內存覆蓋問題

    1. memcpy()

函數原型:void *memcpy( void *dest, void const *src, size_t length );

它的功能是從src的起始位置復制length個字節到dest中;

它可以復制任何類型的值;

dest,src內存有重疊,則結果不可預計。

2 .memmove()

函數原型:void *memmove( void *dest, void const *src, size_t length );

與memcpy類似,只是他們的dest,src內存可以有重疊。因為在實現時是先將src中的內容復制到一個臨時位置。因此其速度比memcpy要慢一些。

3.memcmp()

函數原型:int memcmp( void const *a, void const *b, size_t length );

函數功能是比較兩段內存,比較的長度為length字節。函數的返回類型和strcmp一樣;

比較是按無符號的字節進行比較的。

4.memset()

函數原型:void *memset( void *a, int ch, size_t length );

函數功能即從內存a的首地址開始共length字節設置成字符ch。

5.memchr()

函數原型:void *memchr( void const *a, int ch, size_t length );

函數功能是從a的起始位置開始查找字符ch第一次出現的位置,並返回一個指向該位置的指針,它

共查找length個字節,如果在這個範圍內沒找到,就返回NULL。

  • atoi() atol atof ()實現

頭文件 #include<stdlib.h>

1. atoi函數(將字符串轉換成整型數)

定義函數: int atoi(const char * ptr);

函數說明:atoi()會掃描參數ptr字符串,跳過前面的空格字符,直到遇上數字或正負符號才開始

做轉換,而再遇到非數字或字符串結束時(‘\0‘)才結束轉換,並將結果返回

2. itoa函數(把一整數轉換為字符串 )

定義函數:char* itoa(int value,char*string,int radix);

函數說明:int value 被轉換的整數,char *string 轉換後儲存的字符數組,int radix 轉換進制

數,如2,8,10,16 進制等。

註意,atoi是標準庫函數,itoa不是,用到itoa的時候可以用sprintf()a函數代替。

3. atof函數 (把字符串轉換成浮點類型)

定義函數:double atof(const char* ptr);

函數說明:atof()會掃描參數ptr字符串,跳過前面的空格字符,直到遇上數字或正負符號才開

始做轉換,而再遇到非數字或字符串結束時(‘\0‘)才結束轉換。參數ptr字符串可包含正負號、小數點E(e)

來表示指數部分,如123.456或123e-2。返回值 返回轉換後的浮點型數。

4 . atol(將字符串轉換成長整型數)

定義函數:long atol(const char* ptr);

函數說明:atol()會掃描參數ptr字符串,跳過前面的空格字符,直到遇上數字或正負符號才開

始做轉換,而再遇到非數字或字符串結束時(‘\0‘)才結束轉換,並將結果返回。

5. gcvt(將浮點型數轉換為字符串,取四舍五入)

定義函數:char *gcvt(double number,size_tndigits,char *buf);

函數說明:gcvt()用來將參數number轉換成ASCII碼字符串,參數ndigits表示顯示 的位數。

gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()所轉換後的字符串包含小數點或正負符號。若轉換成功,轉

換後的字符串會放 在參數buf指針所指的空間。







本文出自 “13187791” 博客,請務必保留此出處http://13197791.blog.51cto.com/13187791/1954501

C語言基礎復習1