WordCount lernen

Schnelle objektorientierte, kompilierende Programmiersprache.
lolliger
Beiträge: 36
Registriert: Sa Mär 05, 2011 1:01 pm

WordCount lernen

Beitrag von lolliger » So Mär 13, 2011 10:29 am

Ich entscheide mich für wordCount. :D
Ich nehme mal an, dass die Funktion "wordCount" zählen soll, wie viele Wörter der String "str" enthällt. (wie der Name ja schon sagt)

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main( void )
{
  char const * str = "Dies ist ein String.";
  unsigned int words;

  words = wordCount( str );

  printf( "Der String enthält %d Wörter\n", words );

  return 0;
}

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: WordCount lernen

Beitrag von Xin » So Mär 13, 2011 6:26 pm

lolliger hat geschrieben:Ich nehme mal an, dass die Funktion "wordCount" zählen soll, wie viele Wörter der String "str" enthällt. (wie der Name ja schon sagt)
Die Annhame ist richtig. :-)

Ich glaube, ich muss meinen Ordnungsspruch in der Signatur aktualisieren, da scheint eine neue Version rausgekommen zu sein... ^^
Wie wäre "Wer Ordnung hällt muss ein Echo im Kopf haben?" (PS: Ich bin eigentlich gar nicht so fies, aber Vorlagen kann man nicht einfach ungenutzt lassen ;-))
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

lolliger
Beiträge: 36
Registriert: Sa Mär 05, 2011 1:01 pm

Re: WordCount lernen

Beitrag von lolliger » Mi Mär 16, 2011 4:03 pm

Ich habe jetzt schon Stunden überlegt, kriege aber nichts nützliches zustande! :(

Stimmt das, dass ich das Problem mit der Funktion "strtok()" lösen könnte??? :?:
Ich kriege es irgendwie nicht hin!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: WordCount lernen

Beitrag von Xin » Mi Mär 16, 2011 4:10 pm

lolliger hat geschrieben:Ich habe jetzt schon Stunden überlegt, kriege aber nichts nützliches zustande! :(
Schon erstaunlich, oder?

Ich mag diese Aufgabe, weil sie Demut lehrt, genau deswegen stelle ich sie den Anfängern. Du wolltest eben noch GUIs schreiben und nun scheiterst Du daran, Worte in einem Satz zu zählen.

Man lernt damit Probleme zu formulieren.
lolliger hat geschrieben:Stimmt das, dass ich das Problem mit der Funktion "strtok()" lösen könnte??? :?:
Ich kriege es irgendwie nicht hin!
Man könnte es mit strtok lösen, aber das wäre etwa so effektiv, wie den Satz auf den Bildschirm zu drucken gefolgt von der Abfrage an den User "Wieviele Worte enthält der Text?".


Löse das Problem mit Deinem Verstand, nicht mit der Standard-C-Lib.

Fangen wir mal auf deutsch an... Beschreibe mir, wie man Worte in einem Satz zählt. Wie unterscheidet man Worte? Und wenn Du das beschrieben hast, dann versuche das in C zu formulieren.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: WordCount lernen

Beitrag von nouseforname » Mi Mär 16, 2011 6:22 pm

Würde ja glatt mal mitmachen und meine Methode hier posten. Hab da mal eben auf die schnelle Lust drauf gehabt das selbst zu probieren ohne zu googlen^^

Funktioniert auch ganz gut, nur werden auch einzelne "Nichtleerzeichen" als Wort erkannt.


Eine "Spoiler"-Funktion wäre jetzt genial. :) Also wenns genehm ist Poste ich gerne was ich gemacht habe. Auch wenn ich das nun offiziell gelernt habe, bin ich ja noch lange kein Profi. :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: WordCount lernen

Beitrag von Xin » Mi Mär 16, 2011 7:17 pm

nouseforname hat geschrieben:Würde ja glatt mal mitmachen und meine Methode hier posten. Hab da mal eben auf die schnelle Lust drauf gehabt das selbst zu probieren ohne zu googlen^^

Funktioniert auch ganz gut, nur werden auch einzelne "Nichtleerzeichen" als Wort erkannt.
Das ist okay. Auch alleinstehende Satzzeichen wie in "Dies ist ein - Gedankenstrich." => 5 Worte (4 Worte + 1 Gedankenstrich). So genau nehme ich es gar nicht.
Trotzdem schafft es kaum ein Anfänger beim ersten Versuch.
nouseforname hat geschrieben:Eine "Spoiler"-Funktion wäre jetzt genial. :) Also wenns genehm ist Poste ich gerne was ich gemacht habe. Auch wenn ich das nun offiziell gelernt habe, bin ich ja noch lange kein Profi. :)
Wenn Du möchtest, dass ich es mir ansehe, dann schick es halt als PN.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

lolliger
Beiträge: 36
Registriert: Sa Mär 05, 2011 1:01 pm

Re: WordCount lernen

Beitrag von lolliger » Do Mär 17, 2011 5:15 pm

Xin hat geschrieben:Fangen wir mal auf deutsch an... Beschreibe mir, wie man Worte in einem Satz zählt. Wie unterscheidet man Worte? Und wenn Du das beschrieben hast, dann versuche das in C zu formulieren.
Worte in einem Satz kann man zählen, indem man die vorhandene Leerzeichen +1 zählt.
Worte unterscheiden sich in ihrer Menge und Sorte von Buchstaben.

In C könnte man das Problem in einer Schleife lösen, die immer, wenn sie ein Leerzeichen im String findet eine Varianle, die bei 1 beginnt um 1 erhöht.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: WordCount lernen

Beitrag von Xin » Do Mär 17, 2011 5:32 pm

Gut, eine Lösung hätten wir.
Dann programmiere die mal und dann gucken wir, ob sie auch zum Problem passt.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: WordCount lernen

Beitrag von nouseforname » Do Mär 17, 2011 5:39 pm

Jetzt wollte ich was dazu dazu schreiben, aber Du warst schneller @ Xin ^^

Aber schön dass sich bestätigt was wir besprochen hatten.

Viel Spass lolliger...

lolliger
Beiträge: 36
Registriert: Sa Mär 05, 2011 1:01 pm

Re: WordCount lernen

Beitrag von lolliger » Sa Mär 19, 2011 11:53 am

Xin hat geschrieben:Gut, eine Lösung hätten wir.
Dann programmiere die mal und dann gucken wir, ob sie auch zum Problem passt.
Also ich habe bis jetzt dieses Programm geschrieben:

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int i;

unsigned int wordCount( const char *str )
    {

        for ( i=0; str[i]!='.' ;i++ )
        {
            if (str[i]==' ')
                

        }

    }



int main( void )
{
  char const * str = "Dies ist ein String.";
  unsigned int words;
  int i, a;

  words = wordCount( str );

  printf( "Der String enth\x84lt %d W\x94rter\n", words );

  return 0;
}
Die Schleife läuft so lange, bis der Satz zuende ist (sie ein Punkt entdeckt).
Dann kommt eine If-Anweisung, aber ich weis nicht, wie ich es hinkriege, dass sie, wenn sie ein Leerzeichen entdeckt der Funktion "wordCount" einen Wert übergibt bzw. ihn jeweils um 1 erhöht, damit dieser dann in der main-Funktion angezeigt werden kann. :(

Kannst du mir einen Tipp geben???

Antworten