c語言中字元陣列只能存放字串,C語言中字元陣列只能存放字串?

時間 2021-09-02 07:15:46

1樓:八哥說科技

不是的,c語言中字元陣列既可以儲存字元,又可以儲存字串。

字元陣列本意就是是指用來存放字元資料的陣列。字元陣列的元素是字元型別的。字元陣列用於存放字元或字串。

c語言中字元陣列的一般形式為: char 陣列名[資料長度] 。例如:

char a[10]; a[0]='0'; a[1]=' 1'; a[2]='2'; a[3]='3'; a[4]='4'; a[5]='5'; a[6]=' 6'; a[7]='7'; a[8]='8'; a[9]='9'; 就定義了a為字元陣列,包含10個"0"到「9」的字元元素。

因此,c語言中字元陣列不單單隻能儲存字串。

2樓:

不是的,char型的大小是一位元組,字元陣列也是位元組陣列,不管什麼型別只要大小是一位元組的資料都可以存放在字元陣列中。

3樓:夕照

不一定的,看看陣列中有沒有'/0',如果有的話那麼放入的就是字串,如果沒有那麼就可以看成一個普通的字元陣列就行了。

4樓:匿名使用者

放什麼都可以, 對於c來說, 字元陣列就是一段資料, 可以強制轉換為任意型別的資料, 不過初學者不建議這樣做, 因為這樣操作不當的話很肯能會引起程式崩潰.

5樓:九曲鬼蜮

字元陣列就是存放一個一個的字元,有時候是作為switch case語句用的,也就不是字串,當然也可以理解為字串,看你自己怎麼用

6樓:匿名使用者

肯定不是啊,字元陣列只是用char 宣告的一個連續儲存單元,至於裡面存什麼你自己看辦噻,可以存字串,也可以存一位元組資料,甚至你可以存兩位元組四位元組等資料。只是你存的是什麼賣的時候就要怎麼讀

7樓:周生

可以存放整數等任意放得下的東西

c語言的陣列就是一片連續的記憶體空間,型別只是指明步長

8樓:匿名使用者

字元陣列和字串的唯一區別是

字串必須有\0結束

但字元陣列可以沒有

沒有的情況只有一個,就是字元吧陣列所有的空間都佔用了可能你不明白,舉例說一下

申請了一個陣列,a[3],有三個元素的位置那麼當三個字元都填充到這三個單元的時候,就是如xyz三個字元

a[0]='x',a[1]='y',a[2]='z'

那麼a這個陣列將沒有\0的空間

這樣是可以的

但是要是用字串處理函式,如puts,strcpy等函式的時候,這樣的陣列是不能當字串來處理的,因為沒有\0這個結束符,所有可能有很多亂碼出現,這是正常的

因為這些函式需要\0來判斷字串的結束位置,但是這樣的陣列沒有\0,所以這些函式處理這樣的陣列時,判斷結束不準確,會出現亂碼

c語言如何定義一個陣列存放字元和數字?

9樓:興文博武數碼館

遇到字母和數字混合的陣列,定義的時候就不要定義為int型陣列,因為用%d輸出不了字母, 輸出的是字母的ascii碼,不是輸出的字母本身,所以,要定義為 字串型的陣列。

若不是裡面有個佔兩個字元的 『10』,可以直接用 %s 輸出。

但是因為有 字元『10』,%s輸出的是0 就不能用了,就只能用for迴圈輸出。

10樓:匿名使用者

c語言中,字元型別char和整數型別在儲存資料的格式上是相同的,都是採用補碼儲存資料。所不同的是,char只有一個位元組,而int資料有四個位元組。一個位元組表示的有符號數範圍為:

-128~127, 四位元組表示的有符號數範圍為:-2^31~2^31-1.

因此,若想定義一個陣列,既能儲存char型別,又能儲存int型別,則一般情況要定義成int型別陣列。

若實際應用中,需要儲存的整數型別資料範圍在-128~127之間,則可定義成char型別陣列。

注:當char型別陣列中既儲存整數,又儲存字元時,一定不要按字串來操作!因為,數值0是整數的一個有效數字,但又是字串的結束符值。

按字串操作這樣的陣列,會導致程式計算出現錯誤。

在輸出資料時,如printf(),當格式串為%c時,是把陣列中儲存的值按字元輸出;當格式串為%d時,是把陣列中儲存的值按整數輸出。

11樓:杭皖清

一個陣列只能存放一種資料型別. 但是字元和數字可以統一為字元或者數值形式存放在一起,他們儲存方式都差不多,只要你知道他們的排列方式就可以.別到時候不知道哪個是數哪個是符號就好.

12樓:匿名使用者

「撲克,從a,1,2,3,4,5,6,7,8,9,10,j,k,q,如何把這些有包含數字和字母的這些陣列,

定義存放在一個陣列」

看起來你的要求其實是一個字元陣列來存放,

因為「1,2,3,4,5,6,7,8,9,10,」在顯示時是以ascii標準碼的字元定義輸出的。

所以定義一個char陣列來存放這些資料,

顯示時直接輸出字元來顯示就可滿足要求。

13樓:匿名使用者

用char 就可以,

比如 char a = ;

輸出也很容易

printf("%s",a);

數字10是顯示0的,因為char是一個位元組,而10佔用了兩個位元組,所以將低位元組輸出了。

給你一種方法:是一種投機取巧的方法。

char a = ;

輸出時int m = 10;

for(int i = 0;i<14;i++)else

printf("%c",c+i);}

14樓:匿名使用者

你可以用 char 型的陣列將你說的東西放在一起,但是要注意的是 10 ,10是兩個數字,不能放在一個char 裡面,需要就把10 分成 『1』 和『0』 兩個。

15樓:匿名使用者

分別定義一個char型和int型陣列,用來存放字元和數字

C語言字元陣列與字串問題,C語言中將字串賦值給字元陣列的問題

渿河 這是在定義時初始化 如果你的右邊花括號內的字元個數少於 陣列元素個數 那麼其餘的陣列元素將會初始化為0 0 的ascii碼的值就是0 如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的 char c 10 這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的 c語言中將字串...

C語言字串問題,C語言字元陣列與字串問題

字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...

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

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