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

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

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語言問題如果字串陣列含有多個0那要怎么

字串中不應該 0 的,這個在字串中是作為字串結束標誌存在的 c語言,字元陣列中最後乙個字必須為 0 為什麼錯?不是字元陣列中最後乙個字元必須為 0 如果字元陣列中存放的是乙個字串,則最後乙個字元應當 0 0 是結束符號,這樣當輸出這個字串時,只須輸入陣列名就可以,輸出函式會自動輸出陣列中的字元,直到...

C中如何將輸入的字串賦值到陣列

陳學陽 改用list吧.方法一是沒有new 沒有分配空間 方法二是在new的時候沒有指定大小,預設是0個元素,所以對其任意乙個元素賦值都是越界.在c 中,陣列一般用來存放大小確定的資料.如果陣列大小未知,建議使用list lista new list a.add we messagebox.show...