Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [c] - funzione cerca maiuscole e minuscole

    Ciao a tutti!
    Sto facendo un programma che contenga una funzione la quale cerca le maiuscole in una lista di stringhe mettendole in un array, e lo stesso fa per le minuscole...
    non sono a conoscenza della dimensione delle singole stringhe ne tanto meno quante sono le parole
    Ho provato in questo modo ma oltre ad uscirmi simboli, non visualizza tutto il vettore che contiene le lettere minuscole...
    ho pensato questi due modi...ovviamente nessuno dei 2 è corretto...mi aiutate?magari spiegandomi gli errori.... grazie in anticipo

    codice:
    for(i=0; i<M; i++)  
        for (j=0; j<N;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' %s\n", vetc1);  
    printf("il vettore minuscole e' %s\n", vetc2);


    codice:
    void separa_maiuscole_minuscole(char s[M][N], char vetc1[], char vetc2[]) 
    {
     int i,j;
    int k1=0;
    int k2=0;
    for(i=0; s[i][0]!= EOF; 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\n", vetc1[i]);  
    printf("il vettore minuscole e'\n"); 
    for (i=0; i<k2;i++) 
    printf("%s\n", vetc2[i]); }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Guarda che il contenuto dei vettori NON si visualizza con una semplice printf in questo modo

    printf("il vettore maiuscole e' %s\n", vetc1);

    Va scritto un ciclo for che visualizza elemento per elemento ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Guarda che il contenuto dei vettori NON si visualizza con una semplice printf in questo modo

    printf("il vettore maiuscole e' %s\n", vetc1);

    Va scritto un ciclo for che visualizza elemento per elemento ...
    si infatti nel secondo codice ho messo i 2 for...
    ma quale codice è più appropriato da usare?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Devi mostrare un esempio COMPLETO di main, completo di un esempio di input (e di output) per capire dove sbagli ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ok mostro tutto
    magari saprete darmi anche qualche consiglio in più


    codice:
    int main(void) { 
        char stringhe[M][N], vetc1[K], vetc2[K]; 
        int num_stringhe;
        num_stringhe = carica_stringhe_da_file(stringhe);
              if(num_stringhe==-1) {printf("Errore durante la lettura da file. Fine programma.\n"); 
                 return 0; }
        stampa_stringhe(stringhe, num_stringhe);
        separa_maiuscole_minuscole(stringhe, vetc1, vetc2); 
         system("PAUSE");
         return 1; }
    
    int carica_stringhe_da_file(char s[M][N]) {
          FILE *f; 
         int i=0; 
        f=fopen("stringhe1.txt", "r"); if (f==NULL) return (-1); 
    else { while (fscanf(f, "%s", s[i])!=EOF) i++; return i; } } 
    
    void stampa_stringhe(char s[M][N], int num_s) { 
    int i; 
    printf("Le %d stringhe lette da file:\n", num_s); 
    for(i=0;i<num_s;i++) 
    printf("Stringa %d: %s\n",i+1,s[i]); } 
    
    void separa_maiuscole_minuscole(char s[M][N], char vetc1[], char vetc2[]) {
    int i,j;
    int k1=0;
    int k2=0; 
    for(i=0; s[i][0]!= EOF; 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\n", vetc1[i]);  
    printf("il vettore minuscole e'\n"); 
    for (i=0; i<k2;i++) 
    printf("%s\n", vetc2[i]); }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Con questa riga

    for(i=0; s[i][0]!= EOF; i++)

    cosa pensavi di fare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Con questa riga

    for(i=0; s[i][0]!= EOF; i++)

    cosa pensavi di fare?
    controllare l'elenco di stringhe e con quella successiva controllare le singole stringhe...non va bene?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    No ... non troverai mai EOF nelle stringhe ...

    Spiega meglio quali sono i passi che vuoi compiere ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Originariamente inviato da oregon
    No ... non troverai mai EOF nelle stringhe ...

    Spiega meglio quali sono i passi che vuoi compiere ...
    nel file ho una lista di nomi
    maria
    GIANNI
    e così via
    ho pensato che essendo come una matrice, per controllare le varie lettere, ci vogliono i due cicli for che scorrono gli indici...ma non sapendo il numero di "righe" ho pensato di sostituire la condizione che termina il ciclo con s[i][0]!=EOF...e ho fatto lo stesso per far scorrere l'indice delle singole stringhe fino a \0...è un ragionamento errato?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    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
    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.