Es wurde eine Deklaration erwartet.

  • C++/CLI

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Es wurde eine Deklaration erwartet.

    Hallo,
    ich versuche schon die ganze zeit "herauszufilter" an welcher Stelle das @ kommt und dann per Ausgabe anzeigen zu lassen. An sich klappt es auch denke ich nur bekomme ich den Fehler: Es wurde eine Deklaration erwartet.
    Ich weiß zwar was de Fehler bedeutet aber finde den Fehler im Code nicht.
    Hier mal mein Code:


    C-Quellcode

    1. #include "stdafx.h"
    2. #include <iostream>
    3. #include "Windows.h"
    4. #include "stdio.h"
    5. #include "string";
    6. using namespace std;
    7. string name;
    8. int Size;
    9. int main()
    10. {
    11. name = "Meyer@gmail.de";
    12. int Size = name.length();
    13. cout << "Email Adresse: Meyer@gmail.de" << endl;
    14. cout << "Anzahl der Buchstaben: " << Size << endl;
    15. getchar();
    16. char string[] = "Meyer@gmail.de";
    17. if (strchr(string, '@'))
    18. {
    19. cout << "Enthält ein @ !";
    20. }
    21. else
    22. {
    23. cout << "Enthält kein @ !";
    24. }
    25. getchar();
    26. if (strchr(string, '.de'))
    27. {
    28. cout << "Enthält ein .de";
    29. }
    30. else
    31. {
    32. cout << "Enthält kein .de !";
    33. }
    34. getchar();
    35. }
    36. char *mail = "Meyer@gmail.de";
    37. char *found = NULL;
    38. if ((found = strchr(mail, '@'))
    39. {
    40. cout << ("@-Zeichen an der Stelle %d", (mail - found + 1));
    41. }


    Bei

    C-Quellcode

    1. if ((found = strchr(mail, '@'))
    ist er oben genannte Fehler
    Kann mir bitte jemand helfen^^
    MfG kleinkiko

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kleinkiko“ ()

    @Bluespide Jou.
    @kleinkiko Das ist C++, nicht aber C#. Bitte benenne die Sprache im Header dieses Threads um.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    kleinkiko schrieb:

    C-Quellcode

    1. if ((found = strchr(mail, '@'))
    Typischer VB-Programmierer-Fehler. machst Du

    C-Quellcode

    1. if ((found == strchr(mail, '@'))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    C-Quellcode

    1. if (found = strchr(mail, "@"))

    das einfache = ist schon richtig.
    found bekommt den gefundenen Pointer aus strchr zugewiesen. Das if überprüft dann nur noch, ob dieser Wert ein nullptr ist.
    Ein nullptr wird nämlich zu false evaluiert, alles andere zu true.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    So wird das nix. Wenn schon C++, dann bitte auch mit der passenden Bibliothek (und nicht mit legacy-C): cplusplus.com/reference/string/string/find_first_of/

    Ansonsten:
    - Zeile 2-5: System-Includes mit <>, nicht "".
    - Zeile 20: Variable heißt genauso wie ein Typ - schlecht, aber nicht faslch.
    - Grundsätzlich ist "bla" ein const char*, nicht string und auch nicht char[].
    - Einfach nur nein. Siehe Spoiler.

    Spoiler anzeigen

    C-Quellcode

    1. #include "stdafx.h"
    2. #include <iostream>
    3. #include <string>
    4. #include <cstddef>
    5. using namespace std;
    6. int _tmain(int argc, _TCHAR* argv[])
    7. {
    8. string mail("Meyer@gmail.de");
    9. cout << "Address: " << mail << endl;
    10. cout << "Length: " << mail.length() << endl;
    11. size_t pos = mail.find_first_of('@');
    12. if (pos != string::npos) {
    13. cout << "@ at index " << pos << endl;
    14. } else {
    15. cout << "@ not found" << endl;
    16. }
    17. string domain(".de");
    18. pos = mail.find(domain);
    19. if (pos == string::npos) {
    20. cout << "No domain inside address." << endl;
    21. } else if (pos != mail.length() - domain.length()) {
    22. cout << "Invalid domain location." << endl;
    23. } else {
    24. cout << "Valid domain found." << endl;
    25. }
    26. cin.get();
    27. return 0;
    28. }
    Gruß
    hal2000