2015-05-27 14 views

Odpowiedz

6

W rzeczywistości

array == {'0','0','0','0','0','0','0','0'} 

nie jest dozwolone, nie można porównać tablic w ten sposób. Raczej to zrobić w pętli:

int row_is_all_zeroes(char arr[8]) 
{ 
    for (int i = 0; i < 8; i++) 
    { 
    if (arr[i] != '0') 
     return 0; 
    } 
    return 1; 
} 

Jeśli chcesz bardziej eleganckie rozwiązanie, rzucić okiem na iharob lub odpowiedzi Sourav za

7

Ten

array == {'0','0','0','0','0','0','0','0'} 

jest zdecydowanie źle, a na pewno nie kompilacja.

można porównać wartości z memcmp() jak ten

int allZeroes = (memcmp(array, "00000000", 8) == 0); 
5
{'0','0','0','0','0','0','0','0'} 

nazywa (i wykorzystywane jako) w nawiasów zamkniętym liście inicjatora. Tego nie można użyć w żadnym przypadku do porównania.

Możesz skorzystać z memcmp(), aby osiągnąć ten cel w elegancki sposób elegancki.

pseudo-kod

if (!memcmp(array, "00000000", 8)) 
{ 
    break; 
} 
+0

Dużo dzięki panu @Dukeling do pobierania opłaty, aby pytanie i _all_ odpowiedzi łatwo zrozumiałe i bardziej użyteczne. Kudos !! –

Powiązane problemy