關於Linux環境下字串和數值型的相互轉化問題

2021-10-09 05:48:29 字數 1601 閱讀 3603

二、數值型轉換為字串

1、atoi()

atoi()原型: int atoi(const char *str ); c 標準庫 -

函式功能:把字串轉換成整型數。

引數str:要進行轉換的字串。

返回值:每個函式返回 int 型別的值。如果沒有執行有效的轉換,則返回0。

2、atol()

atol()原型: long int atol(const char *str); c 標準庫 -

函式功能:把字串轉換成長整數。

引數str:要進行轉換的字串。

返回值:每個函式返回 long int 型別的值。如果沒有執行有效的轉換,則返回0。

3、atof()

atof()原型:double atof(const char *str); c 標準庫 -

函式功能:把字串轉換成double型別的浮點數。

引數str:要進行轉換的字串。

返回值:每個函式返回 double float 型別的值。如果沒有執行有效的轉換,則返回0.0。

**案例:

#include

#include

intmain()

執行結果:

test =

1234

test =

1234

test =

1234

test =

1234.000000

(因為再linux環境下, stdlib.h 庫中並沒有itoa等將數值型轉換為字串的函式,所以我們使用sprintf()函式來代替實現這種功能)

sprintf()原型:int sprintf(char *str, char * format [, argument, …]);

函式功能:將格式化的資料寫入字串。

引數:str為要寫入的字串;format為格式化字串;argument為變數。

**案例:

#include

intmain()

;sprintf

(test,

"%d"

,1234);

printf

("test = %s\n"

, test)

;sprintf

(test,

"%ld"

,12345678999);

printf

("test = %s\n"

, test)

;sprintf

(test,

"%f"

,12345.6789);

printf

("test = %s\n"

, test)

;return0;

}

執行結果:

test =

1234

test =

12345678999

test =

12345.678900

字串和數字

然而,如果使用者輸入非數字資料,如 亞歷克斯 cin將無法提取任何管理,並將設定failbit。如果發生了乙個錯誤,乙個流將比其他任何goodbit,對該流將被忽略,進一步的操作流。這種情況可以通過呼叫clear 功能清除。輸入驗證 輸入驗證是檢查使用者是否輸入滿足一定的標準過程。輸入驗證一般可以分...

字串和陣列

一 字串儲存 1.串的邏輯結構 子串 串中任意個連續的字元組成的子串行。主串 包含子串的串。子串的位置 子串的第乙個字元在主串中的序號。2.串的儲存結構 順序串 用陣列來儲存串中的字串行。有三種方法可以表示串的長度 1 用乙個變數來表示串的實際長度。2 在串尾儲存乙個不會在串 現的特殊字元作為串的終...

字串和陣列

串的儲存結構 用陣列來儲存串中的字串行。串的長度 方案1 用乙個變數來表示串的實際長度。方案2 在串尾儲存乙個不會在串 現的特殊字元作為串的終結符,表示串的結尾。方案3 用陣列的0號單元存放串的長度,從1號單元開始存放串值。非壓縮結構 乙個結點只儲存乙個字元 壓縮結構 乙個結點儲存多個字元 模式匹配...