IB001 Úvod do programování - Seminární skupina 25 a 26

Řešení 2. zápočtového testu

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

void censor(char *str)
{
    char mystring[20];
    FILE * pFile;
    pFile = fopen ("slova.txt" , "r");

    if (pFile == NULL)
    {
        printf("Nepovedlo se otevrit soubor.");
        return;
    }
    else
    {
        while(fscanf(pFile,"%s",mystring) != EOF /*fgets (mystring,20,pFile) != NULL*/){
            /*mystring[strlen(mystring)-1] = '\0'; // pri pouziti funkce fgets je treba odstranit '\n' na konci slova */
            char *substring = strstr(str,mystring);
            while(substring != NULL && strlen(mystring)>0){
                strncpy(substring,"********************",strlen(mystring));
                /* alternativne lze namisto strncpy pouzit cyklus
                for(unsigned int i=0; i<strlen(mystring); i++)
                {
                    *(substring+i) = '*';
                }
                */
                substring = strstr(str,mystring);
            }
        }
        fclose (pFile);
    }
}

int main(void)
{
    printf("Zadejte text, ktery chcete cenzurovat:\n>");
    char text[1024];
    fgets(text,1024,stdin);
    //gets(text); // aleternativne muzete pouzit i funkci gets;
    censor(text);

    printf("\n%s",text);
    return 0;
}
Následující