2016-11-15 136 views
2

如何比較這兩個字符數組以確保它們是相同的?如何比較2個字符數組

char test[10] = "idrinkcoke" 
char test2[10] = "idrinknote" 

我想用for loop,但我看別的地方,我不可能在C.

test[i] == test2[i]我真的很感激,如果有人可以幫助這一點。謝謝。

+3

'STRCMP(A,B)== 0'是你在找什麼。 –

+1

你可以做'test [i] == test2 [i]',因爲它們是字符比較。但爲了比較字符串,你需要使用函數'strcmp()' – Haris

+0

所以在我的情況'strcmp(test [i],test2 [i])''? – ThomasWest

回答

5

,但我看別的地方,我不可能做試驗[I] ==測試2 [i]於C.

那將是非常痛苦的,比較字符一個字符這樣。當你想在這裏比較兩個字符數組(字符串),你應該使用strcmp代替:

if(strcmp(test, test2) == 0) 
{ 
    printf("equal"); 
} 

編輯:

  • 沒有必要當你初始化字符數組指定大小。這將是更好的:

    char test[] = "idrinkcoke";
    char test2[] = "idrinknote";

  • 它還會更好,如果你使用strncmp - 這是一般安全(如果一個字符數組恰好是不是空終止)。

    if(strcmp(test, test2, sizeof(test)) == 0)

+0

我明白了。我以前不知道這一點。謝謝。 – ThomasWest

2

可以使用C庫函數strcmp

像這樣:

if strcmp(test, test2) == 0

documentation on strcmp

將C字符串str1與C字符串str2進行比較。

該函數開始比較每個字符串的第一個字符。如果 它們彼此相等,則繼續使用以下對 ,直到字符不同或者直到達到了終止空字符 。

該函數執行字符的二進制比較。對於考慮到區域特定規則的 函數,請參閱strcoll。

和返回值:

返回0,如果兩個字符串的內容相等

+0

我非常想分享一些關於你的工作場所問題的個人經驗以及azubi方面的問題,但我不能在q/a上這樣做。如果你有興趣談話,請給我發電子郵件。 :) – simbabque