Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12
  1. #11
    Originariamente inviato da oregon
    E' errato, perche' il controllo dell'EOF lo puoi fare solo quando leggi da file e non da un array ...

    Alla funzione separa_maiuscole_minuscole devi passare un parametro che indica il numero di stringhe lette, come hai fatto per la stampa_stringhe
    hai ragione! Ho passato il parametro letto nella funzione precedente in questo modo
    codice:
    void separa_maiuscole_minuscole (char s[][N], char vetc1[], char vetc2[], int num_s) { 
    int i,j; int k1=0; int k2=0; 
    for(i=0; i<num_s; i++)
     for(j=0;s[i][j]!='\0';j++) { 
              if (s[i][j]>= 'A' && s[i][j]<='Z') {
                    vetc1[k1]=s[i][j]; 
                        k1++;} 
              else
                  vetc2[k2]=s[i][j];
                     k2++; } 
    printf("il vettore maiuscole e' \n");  
    for(i=0; i<k1;i++) 
    printf("%s", vetc1 [i]); 
    printf("il vettore minuscole e'\n"); 
    for(i=0;i<k2;i++) 
    printf("%s", vetc2[i]); }
    ma mi dà errore di sistema...

  2. #12
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    Ciao ... Ci sono degli errori nella funzione separa_maiuscole_minuscole :
    codice:
    void separa_maiuscole_minuscole (char s[][N], char vetc1[], char vetc2[], int num_s) { 
    int i,j; int k1=0; int k2=0; 
    for(i=0; i<num_s; i++)
     for(j=0;s[i][j]!='\0';j++) { 
              if (s[i][j]>= 'A' && s[i][j]<='Z') {
                    vetc1[k1]=s[i][j]; 
                        k1++;} 
              else
                  vetc2[k2]=s[i][j];
                     k2++; } 
    // Qui devi terminare le 2 stringhe (vetc1 e vetc2)
    vetc1[k1] = '\0';
     vetc2[k2] = '\0';
    printf("il vettore maiuscole e' \n");  
    // printf("%s", vetc1 [i]);  ERRORE
    printf("%s", vetc1);
    printf("il vettore minuscole e'\n"); 
    //printf("%s", vetc2 [i]);  ERRORE
    printf("%s", vetc2); 
    }
    Ricordati anche che è brutta abitudine non inizializzare un puntatore (anche se non si userà al momento) come hai fatto tu ... Se non gli si vuole assegnare un valore subito si usa inizializzarlo a NULL

    codice:
    FILE* f = NULL; // nel tuo caso
    Questo perchè può comportare degli errori difficili da scovare.
    Comunque il codice da te proposto è soggetto a delle restrizioni come ad esempio la lunghezza delle stringhe nel file ...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.