Esercizio sulle stringhe in C

di il
8 risposte

Esercizio sulle stringhe in C

Scrivere un programma in linguaggio C che legga una sequenza di caratteri arbitrariamente lunga dal file di testo input1.txt e scriva, nel file di testo output1.txt, il carattere S se la stringa BIMBI è presente nella sequenza almeno 8 volte e N in caso contrario.
Ad esempio, se il contenuto del file input1.txt è il seguente
123BIMBI9BIMBIMBI
il file output1.txt prodotto dal programma conterrà
N
perché la stringa cercata è presente solo 3 volte.
Si noti che esiste una soluzione al problema proposto che è in grado di identificare le occorrenze della stringa cercata confrontando ogni carattere della sequenza con un singolo carattere della stringa cercata.
In più, si noti che la sequenza di input può essere arbitrariamente lunga e quindi la sua lunghezza può essere limitata unicamente dalle limitazioni dell'elaboratore a disposizione, quali, ad esempio, la quantità di memoria centrale disponibile e la lunghezza in byte del tipo dato long.

Possibile soluzione:

#include <stdio.h>
#include <string.h>
#define MAX 81

/* ricerca di parole in un file di testo */
main()
{FILE *f1;
char P[MAX], S[MAX];
int cont=0;
=fopen("F1.txt", "r");
if(f1==NULL){

printf("Errore apertura del file!\n");
return;
}
printf("\nParola da cercare ?");
scanf("%s",P);
fscanf(f1,"%s",S);
while (!feof(f1))
{
if(strcmp(S,P)==0){
printf("Ho trovato %s!\n",P);
cont++;
}
fscanf(f1,"%s",S);

}
printf("Trovata %s %d volte \n", P, cont);

fclose(f1);
}

secondo voi è esatto ???

8 Risposte

  • Re: Esercizio sulle stringhe in C

    Intanto usa i tag CODE per postare il codice o non si capisce.

    E poi ...

    Dove crei il file in output?
    L'input è limitato a 80 caratteri ma il testo dice differentemente ... (una sequenza di caratteri arbitrariamente lunga)
    L'esercizio non dice di chiedere la stringa da cercare ma questa sarà sempre BIMBI
    Dove sta il controllo delle 8 volte?

    Tu l'hai provato prima di chiedere qui?
  • Re: Esercizio sulle stringhe in C

    Si provato, funziona in dev c, mi manca il controllo delle 8 volte
  • Re: Esercizio sulle stringhe in C

    Quindi non devo mettere define max 81?
  • Re: Esercizio sulle stringhe in C

    Quindi non devo mettere define max 81? Il file l ho creato su blocco note
  • Re: Esercizio sulle stringhe in C

    Manca il file in output!

    E no non devi usare un array di char dunque il ciclo di controllo non è corretto

    Insomma ... il tuo codice NON fa quello che è richiesto dall'esercizio
  • Re: Esercizio sulle stringhe in C

    Ok grazie ora provo a correggere
  • Re: Esercizio sulle stringhe in C

    Come devo fare a
    stampare S o N
  • Re: Esercizio sulle stringhe in C

    Leggi la traccia
Devi accedere o registrarti per scrivere nel forum
8 risposte