您現在的位置是:首頁 > 綜合

「C與指標心得」28. 標準函式庫-整數函式

  • 由 IngresGe 發表于 綜合
  • 2022-03-22
簡介輸出:8 div 3 = 3, remainder = 14.ldiv—兩個整數相除:原型:ldiv_t ldiv(long int numer, long int denom)

整標函式是什麼

感謝您的閱讀與點贊!歡迎關注:「大貓玩程式」,檢視C語言系列文章

本節主要講解之前沒有用過的一些標準函式庫。主要分為 整數函式、浮點型函式、日期和時間函式等。

這一章主要講解整數函式。

整數函式:

整數函式的返回值為整型值,分為三類:

算術

隨機數

字串轉換

算術:

標準函式庫包含了4個整型算術函式—abs\labs\ div\ldiv

1. abs—求絕對值:

原型:int abs(int value);函式說明:abs用來計算傳入引數的絕對值,然後將結果返回。用法:int answer;answer = abs(-12);//answer 返回為-12的絕對值,結果為12

2. labs—求絕對值:

原型

:long int labs(long int value);

返回值

:labs跟abs一樣,用來計算絕對值,但是labs支援長度為long int型別,長度更長。

用法

long result;long x = -12345678L; //長度範圍超過了int的最大範圍result= labs(x);

3.div—兩個整數相除:

原型

:div_t div(int numerator,int denominator);

返回值

:返回商和餘數

用法

div_t q;q = div(10,3);printf(“8 div 3 = %d, remainder = %d\n”, q。quot,q。rem);

輸出:

8 div 3 = 3, remainder = 1

4.ldiv—兩個整數相除:

原型

:ldiv_t ldiv(long int numer, long int denom);

返回值

:返回商和餘數

用法

ldiv_t lx;lx = ldiv(100000L, 30000L);printf(“100000 div 30000 = %ld remainder %ld\n”, lx。quot, lx。rem);

輸出:

100000 div 30000 = 3 remainder 10000

隨機數:

在我們常用的一些加密、模擬操作的時候,需要用到隨機數,這裡有兩個函式(rand\srand)合在一起使用能夠產生偽隨機數。

偽隨機數:透過計算產生隨機數,有可能重複,因此不是真正的隨機數。

1. rand—產生隨機數:

原型

:int rand():

用法

int number;number = rand();

2.srand —提供隨機數種子:

原型

:void srand(unsigned int seed);

這裡的seed是rand函式的種子,用來初始化rand()的初始值。

rand呼叫之前,需要用srand產生一個種子,如果沒有用主動呼叫srand,系統也會預設使用srand(1)。

通常情況下,srand後面跟時間函式來完成隨機種子生成,減少隨機數相同的可能性。

srand((unsigned)time(NULL));int a = rand();

字串轉換:

字串轉換函式把字串轉換成數值,常用的有atoi\atol。

1.atoi—字串轉成整數:

原型

:int atoi(const char *nptr);

返回值

:引數nptr字串,如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字(包括結束符 \0) 字元時停止轉換,返回整型數。否則,返回零。

示例:

int n;char *str = “12345。67”;n = atoi(str); //n的值為12345

2.atol—字串轉成長整形:

原型

:long atol(const char *nptr);

返回值

:返回轉換後的長整型數。如果傳入的字串為空,或者字串包含的內容非阿拉伯數字序列,則函式返回預設值0。

示例

long l;char *str = “98765432”;l = atol(str); //l為98765432

「C與指標心得」28. 標準函式庫-整數函式

Top