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) 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轉化為字元... 天方夜譚的哆啦a夢 c語言字串陣列中的每乙個元素均為指標,即有諸形如 ptr array i 的指標。由於陣列元素均為指標,因此ptr array i 是指第i 1個元素的指標。例 如二維指標陣列的定義為 char ptr array 3 擴充套件資料 字串陣列陣列元素表示方法 陣列元素的一般形式為... 這個就是看你對指標的理解了 char name 相當於你定義了乙個char 的指標陣列,每個陣列元素指向乙個字串。char name 表示你定義了乙個字元陣列,而你初始化的時候,確實字串,肯定編譯不過的。是不是二維陣列,就看你怎麼理解了,char name 中的name相當於char char na... str是個字串陣列的吧,不能按照lz的那種定義方法。可以 char str 您貌似是要將日期和後面的分開,這樣的話 逗號 就是標誌,可以作為你的迴圈的條件。int counter 0 int i 0 while i while str i counter 0 i c 語言編寫 include voi... 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 只能是代表乙個字元,不可以讓...C語言字串陣列的問題,C語言字串陣列的問題
c語言定義字串陣列,C語言 如何定義字串陣列
C語言字元陣列的指標問題,C語言字串指標問題
c語言將字串陣列分成幾個陣列,c語言 將乙個字串陣列分成幾個陣列
請教簡單的c語言字串陣列問題,請教乙個簡單的c語言字串陣列問題