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 結尾,其後的字元不屬於...