c語言中字元數組
1. c語言字元數組如何初始化
C語言允許用字元串的方式對數組作初始化賦值。例如:
static char c[]={'c',' ','p','r','o','g','r','a','m'}; 可寫為:
static char c[]={"C program"}; 或去掉{}寫為:
static char c[]="C program";
當對全體元素賦初值時也可以省去長度說明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};這時C數組的長度自動定為9。
(1)c語言中字元數組擴展閱讀:
數組的使用規則:
1.可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個元素賦值,而後5個元素自動賦0值。
2.只能給元素逐個賦值,不能給數組整體賦值。例如給十個元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。
3.如不給可初始化的數組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
網路-數組
2. c語言字元數組如何比較
1、C語言中字元是使用char來定義的,使用關系運算符(>,<,=)即可對字元進行比較。在編譯器中定義a、b兩個字元型變數,並為其賦值,按照如圖所示編寫代碼。
3. C語言字元數組
C語言中沒有字元串的數據類型,而字元串的處理又非常頻繁,為便於字元串的操作,C語言引入字元數組,用於存儲字元串內容。
舉例:
main()
{
char ch[20];
int i;
printf("Input:");
for(i=0;i<20;i++)
scanf("%c",&ch[i]); \\用循環一個個字元初始化數組,也可以用%s一次性初始化字元數組
printf("Output\n");
for(i=0;i<20;i++)
printf("%c",ch[i]); \\用循環一個個字元輸出數組,也可以用%s一次性輸出字元數組
}
如:
main()
{
char ch[20];
scanff("%s",ch);
printf("%s",ch );
}
初始化時,需要注意數組長度,不要越界。
4. c語言定義字元串數組
C語言字元串數組中的每一個元素均為指針,即有諸形如「ptr_array[i]」的指針。由於數組元素均為指針,因此ptr_array[i]是指第i+1個元素的指針。
例:如二維指針數組的定義為:char *ptr_array[3]={{"asdx","qwer","fdsfaf"},{"44444","555","6666"},{"a78x","q3er","f2f"}};
(4)c語言中字元數組擴展閱讀
字元串數組數組元素表示方法:
數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。如為小數時,C編譯將自動取整。
例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數, 而不能一次引用整個數組。
5. C語言字元數組怎麼用
C語言的字元數組有兩種,比較方式也有所不同。
1 字元串。
C語言的字元串是用字元數組表示的。約定以'\0'(ascii碼0)作為結尾標記。
對於字元串類的字元數組,可以用string.h中的strcmp函數進行比較。
int strcmp(char *str1, char *str2);
其比較規則為:
a, 從左向右依次比較每個元素;
b, 如果出現str1的元素ascii碼比較大,則返回1;如果出現str2元素ascii碼比較大,則返回-1。如果相等,則繼續。
c, 如果一直相等,直到遇到\0,這時檢查是否均為\0,如果均為\0,那麼返回0;
d, 如果str1到\0,而str2沒到,返回-1; 否則返回1。
總結規則就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。
2 不帶\0結束的字元數組。
對於此類數組,沒有庫函數可供使用,只能自己寫函數進行比較。規則可以仿照strcmp的規則。
由於沒有\0作為結束,所以參數中必須傳入每個數組的元素個數。
int char_array_cmp(char *s1, int l1, char *s2, int l2)
{
int lmin = l1>l2? l2:l1; //較小長度者。
int i;
for(i = 0; i < lmin; i ++)
if(s1[i] > s2[i]) return 1;
else if(s1[i] < s2[i]) return -1;
//運行到這里,表示所有已判斷元素均相等。
if(l1 == l2) return 0;
if(l1 > l2) return 1;
return -1;//l1 < l2的情況。
}
6. C語言中, 字元數組只能存放字元串嗎
不是,也可以存放其他的信息。 但是在C語言中因為沒有byte類型,而char類型只佔一個字元大小。所以聲明一個字元數組可以用作緩沖區。 因為可以定位到每一個位元組,所以非常靈活。 如果定義一個整形數組當然就不能定位到每一個位元組了,它必須一次訪問兩個位元組(在編譯器和操作系統認為int型占兩個位元組時)
7. C語言字元數組
字元數組是指用來存放字元數據的數組。其定義的一般形式為: char 數組名[數據長度] 。字元數組用於存放字元或字元串,字元數組中的一個元素存放一個字元,它在內存中佔用一個位元組。C語言中沒有字元串類型,字元串是存放在字元型數組中的。
8. C語言怎樣給字元數組賦值
1、單字元賦值,可通過數組下標方式或指針方式,引用數組元素,進行賦值。
例子:
char a[10];
char ch='a';
for( i=0;i<10;i++ )
a[i]=ch+i ; //可通過數組下標引用數組元素,完成賦值
char *p;
for( p=a; p<a+10; p++ )
*p=ch++; //通過指針對數組相應元素賦
2、字元串賦值,可使用string.h頭文件中的字元串操作函數進行賦值。
例子:
char a[10];
strcpy( a, "abcdefgh");
sprintf(a, "%s", "abcdefgh");
(8)c語言中字元數組擴展閱讀:
C語言給字元數組賦值的優點:
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。
2、運算符豐富
C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
9. C語言的字元數組和字元串的區別
1、長度不同:
對於字元數組,其長度是固定的,其中任何一個數組元素都可以為 null 字元。因此,字元數組不一定是字元串。字元串的結尾是以null 字元結尾,所以長度會有所不同。
2、結尾不同
對於字元串,它必須以 null 字元(也就是'