Anfängerprogramm - Feedback gesucht!



  • Swordfish schrieb:

    Da gäb's zum Beispiel std::ispunct().

    Wow, das sieht schonmal ziemlich viel versprechend aus, vielen Dank!
    Mich würde interessieren nach was du da gesucht hast, damit ich in Zukunft das vielleicht auch selber kann!
    Da merke ich grad, auch ohne die schon fertige funktion hätte ich dafür auch selbst eine schreiben sollen/(können)...

    mfg 🙂
    HarteWare



  • ...



  • Hallo,

    vielen Dank für den Hinweis, ich werde in Zukunft die Linkliste in meine Suchen miteinbeziehen.

    Ich habe noch folgendes Problem:

    Dieses std::ispunct(); scheint mir für C "konzipiert" zu sein. Jedenfalls meckert der Compiler bei der beschriebenen Zuweisung in dem link (einfach mal zwei posts drüber schauen). Bei Zuweisung auf ein string element eines Vector bekomme ich:

    error: cannot convert 'std::string {aka std::basic_string<char>}' to 'char' in assignment

    Bei direkter zuweisung eines strings a la "Peace, heyho!" bekomme ich:

    *error: invalid conversion from 'const char' to 'char' [-fpermissive]
    **
    ich kann diese Fehlermeldungen leider nicht "entschlüsseln". Dem scheint halt irgendwas mit den Typen nicht zu passen, aber eine Lösung sehe ich dafür nicht.

    Hier der Ort an dem es geschieht (falls ich wirklich ein kompilierbares Beispiel zusammenstellen muss, kann ich das noch zusammenbasteln)
    Das str[999] ist weil bei str[] kommt die Meldung:

    error: storage size of 'str' isn't known;

    (also hab ichs mal festgelegt auf
    eine Größe, welche wohl kein Wort übertreffen wird.

    int y = 0;
    char str[999];
    for(int i=0; i<wordcounts.size(); i++)
    {
    
        str[999] = wordcounts[i].word_type; //analog für eine
                                                  // Zuweisung mit "String"
        while(str[y]) {
            if (ispunct(str[y]))
    //...
    

    EDIT: schätze mal die code tags gehen nicht, weil mein code beispiel "schlecht" ist? aka unvollständig



  • Du darfst in den code tags kein [b] oder so verwenden.

    Was sollte std::ispunct("asd!"); denn deiner Meinung nach ausgeben?



  • KN4CK3R schrieb:

    Du darfst in den code tags kein [b] oder so verwenden.

    Was sollte std::ispunct("asd!"); denn deiner Meinung nach ausgeben?

    Hi,

    es sollte den boolean true ausgeben, wenn ich das aus dem von der Dokumentation gegebenen Codebeispiel richtig verstanden habe.

    aah jetzt funktionierts mit den Tags, danke 😉

    mfg
    HarteWare



  • Ich rede von dem Parameter, den du übergibst. Was würdest du erwarten, soll die Funktion mit deinem String machen?



  • Sie überprüft solange Zeichenketten im String sind, ob diese ein "punctuation character" enthalten, sprich: "geschrieben." oder "Hey!" oder "so," oder "(Bananen)" oder '"gedownloaded"'. Also ob es nicht nur "eine" Wörter sind, sondern diese noch Satzzeichen "angebunden" haben.

    Was ich damit erreichen will ist schlicht und ergreifend, dass wenn ich das Wort "Apfel" in einem .txt Dokument habe und an anderer Stelle kommt es vor einem Komma vor, also "Apfel,", soll das Programm dies erkennen.
    Gebe ich also nun alle Wörter der Datei, zusammen mit ihrer Häufigkeit aus, bekomme ich nicht
    "Apfel", 1 mal
    "Apfel,", 1 mal

    sondern
    "Apfel", 2mal
    Denn es handelt sich ja eigentlich um das gleiche Wort...

    mfg
    HarteWare



  • ...



  • was du damit erreichen willst, ist mir schon klar. ich frage so umständlich damit du vllt selbst auf die lösung kommst. wenn die funktion das machen würde, was du dir vorstellst, dann würde sie für jeden satz true ausgeben. das ist dann eine information, die dich nicht sonderlich weiterbringt oder?



  • Hallo,

    Erstmal vielen Dank für die Antworten! 👍
    ja, das mit dem umständlichen Fragen und selbst auf die Lösung kommen a la Sokrates hab ich auch schon etwas bemerkt 😃

    Also das es mir nur sagt, ob ein char ein "punctuation character" ist hab ich jetzt geschnallt. Ich werd einfach nochmal ein bisschen probieren wie es gehen könnte, ich sehe jetzt auch dass mein momentaner Ansatz nicht ganz funktioniert kann. 💡

    Leider besteht noch folgendes Problem:
    Ich kann meinem char str[999] keinen "String" zuweisen, obwohl das in dem Codebeispiel gemacht wird! Ich zitiere:

    char str[]="Hello, welcome!";
    

    Das Problem dahinter habe ich noch nicht ganz erkannt...

    mfg
    HarteWare 🕶

    EDIT: Das Problem hat sich nun mit der Zeit von selbst geklärt und ich habe eine funktionierende Methode gefunden.


Anmelden zum Antworten