Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    15

    [C] Sostituzione parole in stringhe

    Salve, dovrei scrivere un programma che fa questo : "Si scriva un programma C, il quale letto un testo di un SMS da un file comprime le parole effettuando delle sostituzioni che permettono una piu` veloce scrittura del testo. Per esempio, la sequenza "per" viene sostituita da "x", ch da k, e cosi' via."

    Quindi ad esempio il file SMS.txt è questo :

    codice:
    Quello che devi fare per superare l'esame
    non e' chiedere aiuto a Dio o alla fortuna, ma
    fare in modo che il programma computi!
    Mentre il contenuto del file di sostituzioni e':

    codice:
    per x
    ch k
    (Nel file "sostituzioni.txt" la prima colonna indica la parola da sostituire mentre la seconda, la codifica da effettuare.)

    Il contenuto del file di output sara':

    codice:
    Quello ke devi fare x superare l'esame
    non e' kiedere aiuto a Dio o alla fortuna, ma
    fare in modo ke il programma computi!
    Il problema è nella funzione "void CodificaSms(char sms_in[][NCAR], char sms_out[][NCAR], char testo[][NCAR], char codifica[][NCAR], int n, int m)"

    "La funzione CodificaSms prende in ingresso la matrice di char contenente il testo dell'SMS,
    la matrice di char destinata a contenere il testo codificato, la matrice di char con il testo
    da sostituire, la matrice di caratteri con il testo con cui sostituire, il numero di linee del
    testo e il numero di sostituzioni. Codifica l'SMS riga per riga, cercando il testo da sostituire e
    rimpiazzandolo con la codifica."

    Prendo ad esempio la parola "chiedere" nel file sms.txt come potrei fare per sostituire "ch" con "k" ?? Dovrei sostituire solo la lettera "h" e "shiftare" la stringa di -1 ??

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    Ciao

    Ciao, visto che è passato un po di tempo da quando hai postato, non so se hai risolto o sei ancora in cerca di una soluzione

    Comunque trovo l'esercizio interessante e quando avrò un po di tempo da perdere proverò a risolverlo.

    Provo a darti qualche suggerimento che forse ti ritornerà utile, avendo a che fare con altri linguaggi più recenti, si possono avere a disposizione funzioni o metodi che agevolano molto la risoluzione di un problema come questo, rendendo la risoluzione alquanto banale, per citare indexof() di c# o analogo in altri linguaggi.


    Per la risoluzione del problema io punterei alla creazione di funzioni che non sono presenti nella libreria standar del C. come appunto indexof() che restituisce la prima occorrenza di una "striga".

    Quello che dovrai fare nella funzione, è scorrere l'array finché non trovi il carattere iniziale, poi controllare da quel punto che i caratteri successivi siano uguali a quelli della parola cercata, se si restituire l'indice del primo carattere.

    Seconda funzione che ti serve è SostituisciCompatta() che, ricevendo come parametri l'indice e la "parola di sostituzione" sostituisce dall'indice ai caratteri successivi, con la parola ricevuta come parametro, poi compatta l'array .

    Io risolverei cercando di creare queste due funzioni, poi avendole a disposizione sarebbe molto facile costruire un main() che risolva il problema.
    Tecnologia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.