C Arrays vergleichen

Hi Leute,

ich hab in C ein Programm geschrieben,das mit getch() in einer while ein Passwort abfragt.Nach jedem Durchlauf wird die Eingabe in einem Array gespeichert.Dann wird der Array mit einem anderen Array,der bereits das Passwort enthält mit memcmp verglichen.Das Problem ist,das getch() einen int-Wert zurückgibt und das geschpeicherte Passwort in einem char-Array gespeichert ist.

Code:
#include <stdio.h>
#include <string.h>
#include <conio.h>
   
int main()
{
   int c;                                 // getch-Variable
   int counter = 0;                       // Zähler
   int Input[50];                         // Array um Eingaben zu speichern
   int index = 0;                         // Index-Zähler für Array 
   char password[] = "password";          // Passwort
   int ret_mem;                           // Rückgabewert von memcmp
   
   printf("Pass:");
   
   
 while(counter != 20)                          // maximale Eingabe von 20 Zeichen
 {
   c=getch();                                    // Eingabe an c
   Input[index] = c;                           // c in Input speichern
   
   if(c == 13)                                  // wenn Enter (13) gedrückt wird
   {     
	 ret_mem = memcmp(Input,password,sizeof(Input));  // int-char Vergleichen PROBLEM
	 
	 if(ret_mem == 0)                           
	 {
	   printf("\nCorrect Password\n");
	   return 0;
	 }
	 else
	 {
	   printf("\nWrong Password\n");
	   return 0;
	 }
   }
   putchar('*');                          // '*' für jedes eingegebene Zeichen ausgeben
   counter++;                             // counter um 1 erhöhen
   index++;                               // Index um 1 erhöhen
}

  return 0;
  
}

Hoffe könnt mir helfen.
 
Du kannst den Int-Wert zu einem char casten:
Code:
int i = 65;
char c = (char)i;
//allgemein Ziel = (Zieldatentyp)Quelle
 
Danke,aber hab einfach die ASCII-Werte der Buchstaben des Passworts in dem int-Array password gespeichert und dann mit Input in einer if-Abfrage verglichen.
 
Jetzt versteh ich erst,wie bad_allocs Post gemeint war.Ich hab die gecasteten Variablen der memcmp-Funktion übergeben und dann immer ne Fehlermeldung bekommen.Bin dann später erst draufgekommen es so zu machen.Bin noch nicht ganz so erfahren in C.Naja,Hauptsache es klappt jetzt :D.
 
Zurück
Oben