1樓:匿名使用者
在c/c++中,陣列是指 連續分佈的記憶體單元。字串是一種字元陣列,比其他陣列特殊的地方是如果陣列被賦值(scanf,fread,fprintf,strcpy,nstrcpy)會在陣列末尾追加'\0'.
在c語言中,陣列大小是不可知的。(strlen(s)只能算出從s開始到'\0'的長度)
2樓:匿名使用者
總體來說,陣列未初始化之前都是不可知的,如果強行輸出時會是亂碼。對於字元型陣列,只要定義個數小於等於定義的個數,它都會自動加/0。對於整型陣列,不會加/0。
3樓:匿名使用者
你定義的char a[60],因為陣列是從a[0]開始計算的 如果你沒有賦值
那麼預設的是全是0 也就是全是空格 以內你定義的是字元型。
『\0』是系統給你加的 它的位置是a[60]的60個元素的後面 不佔用你定義的60個元素
你定義的是字元陣列 不是int 行陣列 char定義的是放字元 字串的
4樓:匿名使用者
這個問題是你把陣列與字串搞混了;
比方說char[60]="i a m",你用字串賦值的話,你的字母個數必需小於60,否則就會出錯,如果小於60的話,系統會自動加"\0",而陣列卻不同,你可以正好等於60,也就是說最後一個數字不一定等於"\0".如果小於60,則後面當然是0了
簡單一點說:你用字串賦值的話後面系統就會自動加"\0",陣列賦值後面是不自加"\0"的.
5樓:匿名使用者
自己試一下就知道了,先定義一個字元陣列(不初始化),用gets函式輸出,如果什麼也沒有就說明未初始化時全部賦'\0',如果是亂碼就說明是隨機值。
部分初始化我知道,後面未被賦值的部分自動賦'\0'
6樓:
在c語言中,字元陣列中存放的內容中字元的asc碼。如果在定義過程中沒有賦初值,則陣列中的元素都為0。如
char c[10];
定義了c是一個字元陣列共有10個元素c[0]、c[1]……c[9],因為沒有賦初值,所以這10個元素的值都是0。
如果定義時賦了初值,或在程式中賦元素的值,則該元素儲存對應字元的asc碼值。如:
char c[10]="abcd";
則元素a[0]=65 //'a'的asc碼是65
a[1]=66 //'b'的asc碼是66
a[2]=67 //'c'的asc碼是67
a[3]=68 //'d'的asc碼是68
在程式中,a[0]='a'和a[0]=65是等價的。
驗證:char a[10]="abcd";
printf("%d %c\n",a[0],a[0]); //輸出65 a
printf("%d %c\n",a[3],a[3]); //輸出68 d
a[3]=65;
printf("%d %c\n",a[3],a[3]); //輸出65 a
printf("%d",a[6]); // 輸出0 因為沒有賦a[6]初值,所以其值為0
c語言程式設計:輸入一個字串存放在陣列a中,將其中的所有小寫字母存放到字元陣列b中並輸出?
7樓:司馬刀劍
#include
#include
#include
#define max 10
int main()
}for (int i = 0; i < strlen(b); i++)
system("pause");
return 0;}
8樓:匿名使用者
#include
#include
int main()
printf("\n");
puts(b);
return 0;}
c語言中字元陣列只能存放字串,C語言中字元陣列只能存放字串?
八哥說科技 不是的,c語言中字元陣列既可以儲存字元,又可以儲存字串。字元陣列本意就是是指用來存放字元資料的陣列。字元陣列的元素是字元型別的。字元陣列用於存放字元或字串。c語言中字元陣列的一般形式為 char 陣列名 資料長度 例如 char a 10 a 0 0 a 1 1 a 2 2 a 3 3 ...
c語言如何定義陣列存放字元和數字
興文博武數碼館 遇到字母和數字混合的陣列,定義的時候就不要定義為int型陣列,因為用 d輸出不了字母,輸出的是字母的ascii碼,不是輸出的字母本身,所以,要定義為 字串型的陣列。若不是裡面有個佔兩個字元的 10 可以直接用 s 輸出。但是因為有 字元 10 s輸出的是0 就不能用了,就只能用for...
C語言字元陣列與字串問題,C語言中將字串賦值給字元陣列的問題
渿河 這是在定義時初始化 如果你的右邊花括號內的字元個數少於 陣列元素個數 那麼其餘的陣列元素將會初始化為0 0 的ascii碼的值就是0 如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的 char c 10 這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的 c語言中將字串...