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-Key: 47088

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

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 8644
8644 Dec 19, 2006 at 16:18:21 (UTC)
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
Member: mghelp
mghelp Dec 19, 2006 at 16:23:53 (UTC)
Goto Top
Ich war grad dabei es zu erstellen
Mitglied: 6890
6890 Dec 19, 2006 at 16:38:18 (UTC)
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
Member: Biber
Biber Dec 19, 2006 at 21:13:20 (UTC)
Goto Top
Ich würde es eindampfen auf
...
cout<<"\n Email Adresse eingeben : ";  
cin >>eingabe;
if (eingabe.IndexOf("@")) {  
   //alles prima
}
....

Gruß
Biber
Member: mghelp
mghelp Dec 20, 2006 at 13:51:52 (UTC)
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
Member: Biber
Biber Dec 20, 2006 at 22:52:12 (UTC)
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