2015-05-27 22 views

Antwort

6

In der Tat

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

nicht erlaubt ist, kann man nicht Arrays wie folgt vergleichen. Vielmehr tut es in einer Schleife:

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

Wenn Sie eine elegantere Lösung wollen, müssen Sie einen Blick auf iharob oder Sourav der Antworten

7

Diese

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

ist definitiv falsch, und sicher nicht kompilieren.

Sie können die Werte mit memcmp() wie dieser Liste

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

genannt wird (und als) eine Klammer umschlossen initializer vergleichen. Dies kann nicht für Vergleich überall verwendet werden.

Sie können memcmp() verwenden, um dies in einem eleganten Weg zu erreichen.

Pseudo-Code

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

Vielen Dank Herr @Dukeling für die Ladung unter die Frage und _all_ die Antworten leicht verständlich und nützlicher zu machen. Kudos !! –

Verwandte Themen