1,char型數字轉換為int型
char a = "32";printf(
"%d\n
", a[0]-'
0');//
輸出結果為3
2,int轉化為char
(1)字串轉換成數字,用atoi,atol,atof,分別對應的是整型,long型,double型。以整型為例:
char str="1234";
int a=atoi(str);
(2)數字換成字串,用sprintf.以整型為例。
char str[10];int a=1234
;sprintf(str,"%d
",a);
c語言 單引號和雙引號的區別
1、含義不同。
用單引號引起的乙個字元實際上代表乙個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。而一般我們的編譯器採用的都是ascii字符集。因此's'的含義其實和十進位制數115的含義是一致的。
而用雙引號引起的字串,代表的是乙個指向無名陣列起始字元的指標。
2、大小不同。
用單引號引起的乙個字元大小就是乙個位元組。
而用雙引號引起的字串大小是字元的總大小+1,因為用雙引號引起的字串會在字串末尾新增乙個二進位制為0的字元'\0'。
陣列的輸入:
int h[10] = ;for (int m=0; m<4; m++)
printf(
"%d\n
", h[0]);
itoa
功 能:把一整數轉換為字串
用 法:char *itoa(int value, char *string, int radix);
詳細解釋:itoa是英文integer to
array(將int整型數轉化為乙個字串,並將值儲存在陣列string中)的縮寫.
引數:value: 待轉化的整數。
radix:
是基數的意思,即先將value轉化為radix進製的數,範圍介於2-36,比如10表示10進製,16表示16進製制。
* string: 儲存轉換後得到的字串。
返回值:
char * : 指向生成的字串, 同*string。
備註:該函式的標頭檔案是"stdlib.h"
#include #includeintmain()
atoi
c語言庫函式名: atoi
功 能: 把字串轉換成整型數
函式說明: atoi()會掃瞄引數nptr字串,檢測到第乙個數字或正負符號時開始做型別轉換,之後檢測到非數字或結束符 \0
時停止轉換,返回整型數。
原型: int atoi(const char *nptr);
需要用到的標頭檔案: #include
程式例:
#include #includeint main(void
)
執行結果
string = 12345.67 integer = 12345
string 轉 cstring
cstring.format("%s", string.c_str());
char 轉 cstring
cstring.format("%s", char*);
char 轉 string
string s(char *);
海量資料等概率選取問題
1 問題定義可以簡化如下 在不知道檔案總行數的情況下,如何從檔案中隨機的抽取一行,並且每行被抽中的概率相等?首先想到的是我們做過類似的題目嗎?當然,在知道檔案行數的情況下,我們可以很容易的用c執行庫的rand 函式隨機的獲得乙個行數,從而隨機的取出一行,但是,當前的情況是不知道行數,這樣如何求呢?我...
海量資料等概率選取問題
1 問題定義可以簡化如下 在不知道檔案總行數的情況下,如何從檔案中隨機的抽取一行,並且每行被抽中的概率相等?首先想到的是我們做過類似的題目嗎?當然,在知道檔案行數的情況下,我們可以很容易的用c執行庫的rand 函式隨機的獲得乙個行數,從而隨機的取出一行,但是,當前的情況是不知道行數,這樣如何求呢?我...
海量資料等概率選取問題
1 問題定義可以簡化如下 在不知道檔案總行數的情況下,如何從檔案中隨機的抽取一行,並且每行被抽中的概率相等?首先想到的是我們做過類似的題目嗎?當然,在知道檔案行數的情況下,我們可以很容易的用c執行庫的rand 函式隨機的獲得乙個行數,從而隨機的取出一行,但是,當前的情況是不知道行數,這樣如何求呢?我...