C :: Aufgabe #19 :: Lösung #1
3 Lösungen
#19
Text nach Wörtern untersuchen
Anfänger - C
von Dome
- 29.12.2012 um 01:37 Uhr
Ein Text und das Wort was gesucht werden soll, soll eingegeben werden. Daraufhin soll ausgegeben wie oft das Wort in dem Text vorhanden ist.
Konsolenausgabe:
Eingabe Text: Das ist mein Beispieltext.
Welches Wort soll gesucht werden: ist
Das Wort "ist" wurde 1 mal gefunden.
#1
von devnull (8870 Punkte)
- 08.12.2013 um 19:59 Uhr
/********************************************
* word_search.c search word in string
* devnull 08-12-2013
********************************************/
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define STR_LEN 1000
#define WRD_LEN 100
char* getword(char *str, char *wrd, char *pos)
{
static char *p;
char *w;
w = NULL;
p = (pos)?pos:p;
while (*p != '\0' && !isalpha(*p))
p++;
if (*p != '\0') {
w = p;
while (isalnum(*p))
p++;
*p++ = '\0';
}
return w;
}
int count_word(char *str, char *wrd)
{
char *sdp, *wp;
int cw = 0;
if ((sdp = strdup(str)) != NULL) {
wp = sdp;
while ((wp = getword(sdp, wrd, wp)) != NULL) {
if (strcmp(wp, wrd) == 0)
cw++;
wp = NULL;
}
free(sdp);
}
return cw;
}
int main( )
{
char text[STR_LEN+1];
char word[WRD_LEN+1];
printf("Text: " );
if (gets(text) != NULL)
if (strlen(text) > 0) {
printf("Wort: ");
scanf("%s", word);
printf("Das Wort '%s' wurde %d mal gefunden.\n", word, count_word(text, word));
}
return 0;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
