c語言字元陣列如何比較,請教C語言字串和字元陣列的比較問題

時間 2022-01-09 08:04:36

1樓:灩麗

1、c語言中字元是使用char來定義的,使用關係運算子(>,<,=)即可對字元進行比較。在編譯器中定義a、b兩個字元型變數,並為其賦值,按照如圖所示編寫**。

2、執行**後,我們可以得到如圖所示結果。1表示條件為真,0表示條件為假。

3、字串使用char來定義,可以使用strcmp()來判斷大小,也可以使用關係運算子(>,<,=)判斷大小。

4、使用strcmp()對字串進行比較大小時,需要引入標頭檔案string.h。

5、執行**後,我們可以得到如圖所示結果。使用strcmp進行判斷時,返回結果為0,表示兩個字串相等。返回結果大於0,表示第乙個引數字串大。

返回結果小於0,表示第二個引數字串大。

2樓:匿名使用者

首先,c必然定義為字元陣列,c語言沒有定義字串的關鍵字,c語言用字元陣列處理字串。如果需要動態長度字串必須用字元指標實現。我寫了乙個類似的程式。

#include

#include

#include

int main(void)

*cptr = ch;

if (ch == '\0') break;

cread++; cptr++;

ich = getchar();

}if (!strcmp(astr,a))

printf("the string you input equals string a.\n");

else if (!strcmp(astr,b))

printf("the string you input equals string b.\n");

else

printf("your string is: %s\n",astr);

system("pause");

return 0;

}另外,站長團上有產品**,便宜***

3樓:

這個應該挺簡單吧 如果是string型 有個比較函式cmp(string a,string b)

如果是char 型 就用個迴圈 前提是兩個陣列長度一樣例: char a[n],b[n]

int s=0;

for(int i=0;i

//s是對某位上相等的進行計數;

} //s如果與n相等就說明陣列相等,反之不是

4樓:風若遠去何人留

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)

5樓:杜茂彥

字元陣列最後乙個字元後面加個0,然後就可以使用strcmp比較了

6樓:東坡_居士

int cmp(char * str0, char * str1)

//返回值為0就表示相等,否則不等

請教c語言字串和字元陣列的比較問題

7樓:yuanyuan源遠

利用fgets()取得乙個字串,直到讀取到"回車"符,而你得到的字串中含有「回車」(ascii:10),比你要比較的字串多乙個「回車」,所以strcmp()比較結果一直不為零。

如第一次while迴圈的結果:

8樓:it孤鶩

#include

#include

#include

int main(void)

fclose(fp);

system("pause");

return 0;

}上面的**更靠譜

你用過用fgets 那麼處理的字串後面一直要加'\0'

9樓:匿名使用者

fgets()到buff後,沒有\0結束標記

10樓:餘煙琦釵

c語言的字元陣列有兩種,比較方式也有所不同。

1字串。

c語言的字串是用字元陣列表示的。約定以'\0'(ascii碼0)作為結尾標記。

對於字串類的字元陣列,可以用string.h中的strcmp函式進行比較。

intstrcmp(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)

C語言字串陣列的問題,C語言字串陣列的問題

scanf 輸入時不能讀取空格鍵的,所以a儲存的是123,b儲存的是456,當然由於你是用 s輸入的,會自動在123後面加上 0 0是乙個字串的結尾 printf s n s n a i b i 這句只會輸出null int a max b max 這兩個整形陣列儲存的全是0,int的 0轉化為字元...

c語言定義字串陣列,C語言 如何定義字串陣列

天方夜譚的哆啦a夢 c語言字串陣列中的每乙個元素均為指標,即有諸形如 ptr array i 的指標。由於陣列元素均為指標,因此ptr array i 是指第i 1個元素的指標。例 如二維指標陣列的定義為 char ptr array 3 擴充套件資料 字串陣列陣列元素表示方法 陣列元素的一般形式為...

C語言字元陣列的指標問題,C語言字串指標問題

這個就是看你對指標的理解了 char name 相當於你定義了乙個char 的指標陣列,每個陣列元素指向乙個字串。char name 表示你定義了乙個字元陣列,而你初始化的時候,確實字串,肯定編譯不過的。是不是二維陣列,就看你怎麼理解了,char name 中的name相當於char char na...

c語言將字串陣列分成幾個陣列,c語言 將乙個字串陣列分成幾個陣列

str是個字串陣列的吧,不能按照lz的那種定義方法。可以 char str 您貌似是要將日期和後面的分開,這樣的話 逗號 就是標誌,可以作為你的迴圈的條件。int counter 0 int i 0 while i while str i counter 0 i c 語言編寫 include voi...

請教簡單的c語言字串陣列問題,請教乙個簡單的c語言字串陣列問題

char first 123 char second 123 char third 123 char final 3 這裡要給陣列final 0 first final 1 second final 2 third char final預設只是一維的,所以final n 只能是代表乙個字元,不可以讓...