passowrt Beispiel KLAPTNET

Dieses Thema im Forum "C/C++" wurde erstellt von Salvatore, 07.01.2006.

  1. #1 Salvatore, 07.01.2006
    Zuletzt bearbeitet: 07.01.2006
    Salvatore

    Salvatore Rap und Codes

    Dabei seit:
    17.12.2005
    Beiträge:
    29
    Zustimmungen:
    0
    Ort:
    Worms
    Mein C Code

    #include<stdio.h>

    char passwort[]={"passwort"};
    char name[]={"name"};

    int check_pw(char pw[])
    {
    int i, n = sizeof(passwort)/sizeof(char);
    for(i=0; i<n; i++)
    if(pw != passwort)
    return 0;
    else
    return 1;
    }

    char check_na(char na[])
    {
    int i, n = sizeof(name)/sizeof(char);
    for(i=0; i<n; i++)
    if(na != name)
    return 0;
    else
    return 1;
    }

    int main(void)
    {
    char nametmp[20];
    char passtmp[20];
    do{
    printf("Name:");
    fgets(nametmp,20,stdin);
    if(check_na(nametmp)==1)
    printf("Benutzer existiert!\n");
    else
    printf("Benutzer existeirt nicht!\n");
    }while(check_na(nametmp)!=1);

    printf("Hallo %s",nametmp);

    do{
    printf("Dein Passwort bitte:");
    fgets(passtmp,20,stdin);
    if(check_pw(passtmp)==1)
    printf("Passowrt richtig\n");
    else
    printf("Sorry %s das Passwort wahr falch\n",nametmp);
    }while(check_pw(passtmp)!=1);

    return 0;
    }

    Wo is den mein Fehler?
    Wenn ich als Name Bsp. nnnname oder nname, enigebe ist das ergebnis richtiig

    und beim Passwort das gleiche wenn man Bsp. pp, eingiebt.
    Hilfe wär net schlecht, bin noch anfänger
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    hui

    a) nutze doch bitte die Code-Tags
    Code:
    while(true)
      printf("wesentlich besser lesbar\n");
    
    b) warum char als Rückgabewert? Nimm doch bool
    Code:
    bool check_pw(char pw[]) {
      int i = 0;  // Eine Deklaration pro Zeile. Gut für die Übersichtlichkeit.
      int n = sizeof(passwort)/sizeof(char);
      for(i=0; i<n; i++)
        if(pw[i] != passwort[i])
          return false;
    
      return true;
    }
    
    bool check_na(char na[]) {
      int i = 0;
      int n = sizeof(name)/sizeof(char);
      for(i=0; i<n; i++)
        if(na[i] != name[i])
          return false;
    
      return true;
    }
    
    c) ..und schließlich dein Fehler. Du überprüfst nur das erste Zeichen!
    Code:
    bool check_na(char na[]) {
      int i = 0;
      int n = sizeof(name)/sizeof(char);
      for(i=0; i<n; i++)
        if(na[i] != name[i])
          return false;
        else    // <-- klammer das mal korrekt - dann siehst du was du da geschrieben hast-
          return true;
    }
    
    Das hättest du auch kürzer haben können.

    Code:
    bool check_na(char na[]) {
      if(na[0] == name[0])
        return true;
    
      return false;
    }
    
     
  4. #3 Salvatore, 07.01.2006
    Salvatore

    Salvatore Rap und Codes

    Dabei seit:
    17.12.2005
    Beiträge:
    29
    Zustimmungen:
    0
    Ort:
    Worms
    Hab das jetzt so da stehn.

    #include<stdio.h>

    char passwort1[]={"passwort"};

    bool check_pw(char pw[])
    {

    if(pw[0]==passwort1[0])
    return true;
    return false;
    }



    int main(void)
    {
    char passtmp[20];

    printf("Dein Passwort bitte:");
    fgets(passtmp,20,stdin);
    if(check_pw(passtmp)==true)
    printf("Passowrt richtig\n");
    else
    printf("Sorry das Passwort wahr falch\n");
    return 0;
    }

    Aber trozdem sagt er pw richtig wenn nur das 1st. zeichen stimmt, warum?
    Bsp. pass, oder ppppp, aber nicht bei cpass, oder opo oder so
     
  5. #4 ninguno, 07.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    du prüfst nach wie vor nur das erste zeichen des passworts. deine erste version der function war schon fast richtig, du musst nur das return true aus der schleife herausnehmen
    Code:
    bool check_pw(char pw[])
    {
      int i, n = sizeof(passwort)/sizeof(char);
      for(i=0; i<n; i++)
        if(pw[i] != passwort[i])
          return false;
    
      return true;
    }
    allerdings funktioniert das auch nur wenn die beiden zu vergleichenden wörter gleich lang sind, wenn pw kürzer oder länger als passwort ist gibts probleme. da musst du dir noch was überlegen

    ps: code tags benutzen!
     
  6. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Das ist doch nicht der passende Code. Du solltest schon etwas verstehen was da steht.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. oenone

    oenone Freier Programmierer[Mod]

    Dabei seit:
    22.08.2002
    Beiträge:
    599
    Zustimmungen:
    0
    Ort:
    Mannheim
    zum vergleichen von strings, benutze strcmp() bzw. besser strncmp()

    auf bald
    oenone
     
  9. #7 Salvatore, 08.01.2006
    Salvatore

    Salvatore Rap und Codes

    Dabei seit:
    17.12.2005
    Beiträge:
    29
    Zustimmungen:
    0
    Ort:
    Worms
    Hab e bichen experimentiert und volgendes gecodet:

    #include<stdio.h>
    #include<string.h>

    char passwort1[]={"passwort"};

    int check_pw(char pw[])
    {
    int i;
    i=strlen(passwort1);
    if(strncmp(passwort1,pw,i) == passwort1)
    return true;
    return false;
    }

    int main(void)
    {
    char passtmp[20];
    printf("Pw:");
    fgets(passtmp,20,stdin);
    if(check_pw(passtmp)==true)
    printf("OK\n");
    else printf("FALCH\n");

    }

    Und so scheint es zu klappen.

    So und nun will ich ne Funk. schreiben die ' * ' beim tippen des passworts
    auf dem bildschirm ausgiebt.

    Hätest du en paa Anhaltspunkte??
     
Thema:

passowrt Beispiel KLAPTNET

Die Seite wird geladen...

passowrt Beispiel KLAPTNET - Ähnliche Themen

  1. Beispiel ldif fuer nfs-client

    Beispiel ldif fuer nfs-client: Hallo, nachdem ich nun beim exportieren von nfs4 etwas weitergekommen bin, meldet sich nun nslcd auf dem Server zu Wort: Apr 14 14:51:52...
  2. Eigenes Teilssystem für Linux zum Beispiel Ubuntu oder OpenSuse??

    Eigenes Teilssystem für Linux zum Beispiel Ubuntu oder OpenSuse??: Hallo liebe UnixBoard, liebe Gemeinschaften, Ich möchte eigenes Linux Teilssystem wie ein echtes Teilssystem zum Beispiel: Ubuntu, Redhat,...
  3. wer kann mir anhand eines beispiels mein problem lösen

    wer kann mir anhand eines beispiels mein problem lösen: Habe diese Aufgaben zu erledigen , probiers schon den ganzen tag- komme aber nicht darauf: hoffe mir kann wer helfen .1 Das Formular Wir...
  4. Debian 3.1 "Sarge" sources.list - Beispiele

    Debian 3.1 "Sarge" sources.list - Beispiele: Hi! :) Habe für unsere Schule mal ein Debian System auf dem MedienServer installiert! Was man nicht alles für gute Noten macht :brav: Jetzt...
  5. suche einfache beispiele für die shellscriptprogrammierung

    suche einfache beispiele für die shellscriptprogrammierung: hallo liebe leut, da ich mich nun seit kürzerem auch mit der shell im allgemeinen und dem schreiben von shellscripten insbesondere, würde ich...