Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    1

    [C++] esercizio

    Ciao a tutti.

    Ho da fare un esercizio: il problema mi da una matrice 2x21, dove nella prima riga ci sono le lettere dell'alfabeto, e nella seconda riga le lettere con cui sostituire la lettera data.

    Devo scrivere una funzione che, dato un file di testo, mi scrive su un altro file le stesse parole con le lettere convertite. Ad esempio, vedendo la matrice sottostante, dovrei sostituire la parola "cane" con "udsg".

    codice:
    char x[][COLONNE] = {{'a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','z'},                             
                                            {'d','v','u','l','g','q','c','p','t','e','n','s','m','z','o','h','b','a','f','r','i'}}; 
    
    void converti(char in[], char out[]) 
    { 
       fstream orig, mod; 
       orig.open(in, ios::in); 
       mod.open(out, ios::out); 
       while (orig.get(c)) 
       { 
          for (int i=0; i<COLONNE; i++) if (c==x[0][i]) c=x[1][i]; 
          mod.put(c); 
       } 
       orig.close(); 
       mod.close(); 
    }
    Tuttavia quando eseguo il programma, alcune lettere me le converte giustamente, altre me le converte senza un ordine ben definito... Ho scritto male qualcosa secondo voi?

    Grazie mille in anticipo, mi salvate

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quando con la if trovi e sostituisci il carattere, devi interrompere il ciclo di ricerca ...

    codice:
         for (int i=0; i<COLONNE; i++) 
    	if (c==x[0][i]) 
    	{
    	   c=x[1][i]; 
    	   break;
    	}
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.