C :: Aufgabe #19 :: Lösung #1

3 Lösungen Lösungen öffentlich
#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
vote_ok
von devnull (8870 Punkte) - 08.12.2013 um 19:59 Uhr
Quellcode ausblenden C-Code
/********************************************
 * 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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben