mghelp
Goto Top

String überprüfen ob bestimmte(s) Zeichen vorhanden sind

#include <iostream.h>
#include<ctype.h>
#include<string.h>

int main()
{
string eingabe;
cout<<"\n Email Adresse eingeben : ";
cin >>eingabe;
for( int i = 0; i < eingabe.length(); i++ )
{
????????????????????
}
getchar();
return 0;
}

Ich möchte, dass die Eingabe überprüft wird,

Ob ein @vorhanden ist (muster@haus.de).

Wie müsste Schleife dann aussehen wie unten aufgeführt?
Wenn @ nicht vorhanden, dann--> Ausgabe "Inkorrekte Emailadresse" und springt
wieder zur Eingabe.

Wenn @ vorhanden, dann weiter (Schleife ist beendet).


Danke für eine Hilfe.

mghelp

Content-ID: 47088

Url: https://administrator.de/contentid/47088

Ausgedruckt am: 15.11.2024 um 03:11 Uhr

8644
8644 19.12.2006 um 17:18:21 Uhr
Goto Top
Hi,

@mghelp:
Ist das eine Frage, ein Tutorial, ein Tipp oder was?
Ich finde es nicht gut, hier einen völlig unkommentierten Schnipsel hinzuwerfen!

[Edit: er hat es geändert! Mein Kommentar ist somit hinfällig!]

Psycho
mghelp
mghelp 19.12.2006 um 17:23:53 Uhr
Goto Top
Ich war grad dabei es zu erstellen
6890
6890 19.12.2006 um 17:38:18 Uhr
Goto Top
hallo,

also ich kann leider kein c aber so univer sell müsste das funktionieren:
//vor der schleife noch eine wahrvariable deklarieren

int wahr=0;
while(wahr == 0)
{
   cout<<"\n Email Adresse eingeben : ";  
   cin >>eingabe;
   for( int i = 0; i < eingabe.length(); i++ )
   {
       if(eingabe[i] eq "@")  
       {
          printf("alles ok");  
          wahr = 1;
          last;
       }
   } 

    if(wahr == 0)
    {
        printf("Sie müssen eine gültige Email bla bla");  
    }
}

mfg godlike P
Biber
Biber 19.12.2006 um 22:13:20 Uhr
Goto Top
Ich würde es eindampfen auf
...
cout<<"\n Email Adresse eingeben : ";  
cin >>eingabe;
if (eingabe.IndexOf("@")) {  
   //alles prima
}
....

Gruß
Biber
mghelp
mghelp 20.12.2006 um 14:51:52 Uhr
Goto Top
wenn ich das so mache entsteht ein Fehler.
Fehler E2316 10: "IndexOf" ist kein Element von "string"

oder ist da ein Fehler drin; oder Fehlet da noch was.

#include <iostream.h>
#include<ctype.h>
#include<string.h>
int main()
{
string eingabe;
cout<<"\n Email Adresse eingeben : ";
cin >>eingabe;
if (eingabe.IndexOf("@")) {
//alles prima
}
getchar();
return 0;
}

Danke euch zwei für die Hilfe
Biber
Biber 20.12.2006 um 23:52:12 Uhr
Goto Top
*grmpf*

..wenn ich etwas liebe an C#/C++/C, dann die Einheitlichkeit und Portabilität...

Also, was auf jeden Fall (außer natürlich der Zeichen-für-Zeichen-for-Schleife oben) einfach da sein muss gemäß ANSI-C++-Spezifikation ist die Function "strchr()":

const char * strchr ( const char * string, int c ); // Prototyp strchr() 
// Prototyp auch manchmal:        char * strchr (       char * string, int c );
However, damit wäre der Weg:
....
char * pch;
...
pch=strchr(eingabe,'@');  

if (pch!=NULL) {
  // alles Prima ... mindestens 1 "@" vorhanden... 
}
...

Jedenfalls, und das wollte ich auch im vorangegangenen Post ausdrücken, hätte ich nicht den Ehrgeiz, eine Ist-Zeichen-In-String-Enthalten-Funktion für C neu zu erfinden.
Da gibt es immer etwas.

HTH
Biber