⑴ c語言 請問char數組該如何聲明
char數組的聲明就是直接定義一個char類型的數組。
聲明一個char型數組:
char a[N] // a為char型數組名,N為數組大小
值得注意的是:聲明必須要在調用之前,對於C語言,必須將定義的語句放在執行功能語句之前。
⑵ c語言 char數組的問題
你只輸入了c[0]和c[1]的值,沒法判斷c[6]的,如果想判斷的話和判斷c[6]一樣
if(c[5]
==
』你想判斷的字元『)就行了,注意必須是兩個等於號,一個是賦值,兩個是比較
⑶ c語言字元數組
char
temp[100]="
",中間空格算一個字元
char
c[1]=''
''定義
str[i]=c[0]不表示清空數據
⑷ 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的情況。
}
⑸ C語言字元數組
輸出LBLMNP吧。
首先strcat的函數是把a,b兩個數組連接起來,於是a數組裡面就成了ABLMNP
然後i++的值是i,也就是把i用了再加1;
於是b[1]=a[1];(b變成「LBNP")
b[2]=a[2];(b變成」LBLNP")
……
當i為6時while的條件不滿足,跳出
最後輸出b中的字元串
⑹ c語言,字元數組函數
#include<stdio.h>
/*比較兩個字元串*/
/*src、dst相等return1*/
/*src比dst短return-2*/
/*src比dst長return2*/
/*src、dst長度一致但不相等return-1*/
intstringCmp(char*src,char*dst){
if(strlen(src)<strlen(dst))
return-2;
elseif(strlen(src)>strlen(dst))
return2;
else{
while(*src&&*dst){
if(*src!=*dst)
return-1;
src++;
dst++;
}
return1;
}
}
/*合並兩個字元串*/
voidmergeString(char*str1,char*str2,char*merge){
while(*merge++=*str1++);/*復制str1並將指針移動到字元串的末尾的下一個位置*/
merge--;/*退到字元串的末尾*/
while(*merge++=*str2++);/*從末尾( )的位置開始將str2拷貝進來*/
*merge='