Plausibilitätsprüfungen

Dieses Thema im Forum "Programmieren" wurde erstellt von BigSwopa, 25. November 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. BigSwopa

    BigSwopa Byte

    Registriert seit:
    3. August 2003
    Beiträge:
    74
    Hallo zusammen!

    Ich bin totaler Anfänger und versuche gerade ein kleines Programm in C zu schreiben und weiß nicht wie ich einen string auf ein spezielles Zeichen untersuche. Ich arbeite übrigens mit struct-Variablen...
    In meinem Fall will ich eine Emailadresse auf Plausibilität prüfen und demnach den String nach dem "@"-Zeichen durchsuchen.

    printf("\n\n\tIhre Emailadresse bitte hier eingeben:\n\n");
    scanf("%s", &gastbuchung.email);
    clrscr();

    if (strlen(gastbuchung.email) > 30)
    {
    printf("Maximal 30 Zeichen erlaubt!");
    }
    else if (strchr(gastbuchung.email, '@')==0)
    {
    printf("Dies ist keine Emailadresse!");
    }
    else printf("Richtig!");

    } while (strlen(gastbuchung.email) > 30 || strchr(gastbuchung.email, '@')==0);

    Es scheinen auch Fehler in dem Aufbau der if-Funktion zu sein. Turbo C++ gibt mir immer einen "general exception error" (oder so ähnlich) aus wenn ich den String nach dem @-Zeichen überprüfen will. Könnte mir jemand mit ein paar Minuten Zeit den Code korrigieren?

    Zweites Problem: Turbo C++ überprüft nicht die Länge eines Strings wenn der String per Leerzeichen in zwei Teile getrennt ist (z.B. Vor-und Nachname). Mein jetzt folgende Code klappt nur wenn der String keine Leerzeichen oder sonstige Unterbrechungen enthält. Was ist da falsch?

    do
    {

    printf("\n\n\tBitte geben Sie Ihren Vornamen & Nachnamen ein:\n\n");
    scanf("%s", &gastbuchung.name);
    clrscr();

    if (strlen(gastbuchung.name) > 20)
    {
    printf("Maximal 20 Zeichen erlaubt!");
    }
    else printf("Richtig!");

    } while (strlen(gastbuchung.name) > 20);

    Danke Euch!

    BigSwopa
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen