2017-04-10 4 views
-1
void check_vertical_win(char A[rows][columns]){ 
    int i,j; 
    char *str1=A[i][j]; 
    char *str2=A[i-1][j]; 
    char *str3=A[i-2][j]; 
    char *str4=A[i-3][j]; 
    int elegxos1; 
    int elegxos2; 
    elegxos1=strcmp(str1,str2); 
    elegxos2=strcmp(str3,str4); 
    for(j=0;j<6;j++){ 
     for(i=6;i>=3;i--){ 
      if(elegxos1==0 && elegxos2==0){ 
       printf("\nBill is the winner.\n"); 
      } 
     } 
    } 
} 

ich überprüfen möchten, ob zwei Strings in einer Matrix gleich sind, also bin ich mit der Funktion strcmp. Der Compiler gibt jedoch eine Warnung aus: Initialisierung macht den Zeiger von Integer ohne einen Cast. (Dann, wenn ich das Programm laufen lasse, heißt es: Windows sucht nach einer Lösung für mein Problem). Ich habe viel versucht, meinen Fehler zu finden, der andere ähnliche Programme schaut, aber ich kann nicht herausfinden.Verwendung von strcmp, macht Initialisierung Zeiger von Ganzzahl ohne Guss

+0

Welche Linie bezieht sich das auf? –

+3

'char * str1 = A [i] [j];' ............ genauer hinsehen .... –

+1

'char * str1 = A [i] [j];' diese Zeile (und die folgenden 3 Zeilen auch) ist schon falsch und du wirst mindestens eine Compiler-Warnung bekommen. –

Antwort

2
void check_vertical_win(char A[rows][columns]) 

Dies erfordert eine Matrix von Zeichen. Wenn Sie eine Matrix, wo jeder Eintrag eine Zeichenfolge ist, sollte es sein:

void check_vertical_win(char* A[rows][columns]) 

Auch sind Sie Variablen i und j, bevor sie initialisiert werden (sie enthalten Müll):

int i,j; 
char *str1=A[i][j]; 
char *str2=A[i-1][j]; 
char *str3=A[i-2][j]; 
char *str4=A[i-3][j]; 
+0

Also wie glaubst du, kann ich zwei oder mehr Zeichenfolgen ohne Verwendung von strcmp oder Zeigern vergleichen (ich bin ein Anfänger bei c Programmierung)? – vasilistheod

+0

Sie müssen Zeiger verwenden, da C-Zeichen _are_ Zeiger sind. Sie können Ihren eigenen String-Vergleich schreiben, aber wenn Ihre Zeichenfolgen keine Codierung verwenden, die die Standard-Bibliothek nicht verarbeitet, sollten Sie sich strcmp (oder strncmp) merken. – Novotny

+0

Nehmen wir an, ich möchte nicht herausfinden, ob zwei Strings gleich sind, aber ich möchte überprüfen, ob eine Zeichenfolge gleich einer Zeichenfolge oder einer anderen Zeichenfolge ist .. Wie kann ich das überprüfen, weil strcmp dies nicht tun kann. – vasilistheod

Verwandte Themen