C 字串流的字元陣列,計算機是怎麼將字串區分成整數的

時間 2021-08-30 09:11:12

1樓:

kaixingui2012的答案很正確.

我補充點:1.首先實體記憶體由一個一個的bit位組成,這些bit位只能儲存高低電平也就是01,無所謂字元還是int.

2.現實中的任何資料都可以轉化為一定結構的01組合. 3.

根據以上兩點我們可以把記憶體中的一堆01轉化為現實中的資料,比如整數,字元,而具體轉化為哪種資料要看我們的需要,比如4b的記憶體,我們可以轉化為4個字元,也可以轉化為1個int.

給你舉個例子,現有4個位元組的字元陣列a,我們要把int型資料0x01010101(十六進位制)存入其中,首先轉化為ascii碼,0x01的ascii碼就是1,所以直接賦值a[0]=1;a[1]=1;a[2]=1;a[3]=1

ps:老譚的話為了給新手降低難度,結果越說越糊塗,我只抓住一點,任何資料表示成01的二進位制後,我可以把它放在任何記憶體中.反之,記憶體中的01組合,我可以解釋成不同的資料.

2樓:匿名使用者

第一:這是一個很好的辦法 實現從一個 數字串中 取出多個整數 來。你學會使用就好

第二:char c[50]="12 34 65 -23 -32 33 61 99 25 44";//這明顯只是一個字串,沒錯,它存的就是字串!而且每個陣列元素位都一個字元。

第三:究竟腫麼就變成整數了?

istream strin(c,sizeof(c));

for(i=0;i<10;i++)

strin>>a[i];//就這樣就變成了。

這裡的關鍵是輸入流中對》的過載實現的。因為a[i]是個整型變數,strin>>a[i];在操作時,就會將讀到的數字 字串 轉換成整型來儲存到變數中去!

3樓:匿名使用者

由於程式將字串c當成輸入,將字串輸入後藉助標準輸入程式(由strin>>a[i];啟動)將一個一個的整數分次輸入到陣列中,這個程式是由iostream庫函式提供的,與你用鍵盤輸入這些整數時處理過程是一樣的。

c++ 16進位制字串如何流轉為字元陣列。

4樓:雨諾與諾

首先擷取,2個擷取一次

讓後把字元轉換為10進位制的整數,如ac

int sum=0;

if(c==『a』)

再賦值給陣列。

C 對字元陣列排序,c 中對於幾組字串的升序或降序排序怎麼做???

風若遠去何人留 與其它排序類似,字元陣列排序也是根據一定演算法,如冒泡法,將各個項值進行比較,並通過賦值交換位置即可。對於字元陣列,賦值和比較均與一般物件或變數不同。1 字元陣列比較 需要呼叫strcmp函式。int strcmp char s1,char s2 按照ascii碼比較,當s1和s2相...

c語言的字元陣列和字串的區別,C語言的字元陣列和字串的區別

u愛浪的浪子 1 長度不同 對於字元陣列,其長度是固定的,其中任何一個陣列元素都可以為 null 字元。因此,字元陣列不一定是字串。字串的結尾是以null 字元結尾,所以長度會有所不同。2 結尾不同 對於字串,它必須以 null 字元 也就是 0 用十六進位制表示為 0x00 結尾,其後的字元不屬於...

C語言關於字串陣列取地址的問題。到底要不要呢

格式 s 輸入字串到字元陣列不需要加取址符 你說對了啊。對一個字串指標來說,在scanf函式中 要 與 不要 都能得到正確結果,你可以放心使用。如果你用了 發現有問題,那就趕快告訴我,讓我也長進一下。原因是這樣的 scanf把變數列表中的 解釋為單純的取地址,都轉化成了指向字串首字元的指標。如果有c...