Toupper struct

di il
3 risposte

Toupper struct

Ciao a tutti sto facendo una funzione che data una struttura contenente nome e cognome restiuisce la struttura con nome e cognome in maiuscolo.
Il problema è che non riesco ad utilizzare la funzione toupper, ogni volta che il programma arriva a quel punto il programma smette di funzionare

struct cod_fis maiuscolof(struct cod_fis prova){
  int i=0;
  do{
    if(islower(prova.nome[i]))
        prova.nome[i]=toupper(prova.nome[i]);
    i++;
  }while(prova.nome[i]!='\n');
questo è una parte della funzione, il problema nasce a questa riga:

   prova.nome[i]=toupper(prova.nome[i]);
non capisco perchè non funziona potete aiutarmi? Grazie

3 Risposte

  • Re: Toupper struct

    No, probabilmente deriva da questo

    while(prova.nome!='\n');

    dato che non è detto che la stringa termini con '\n'
  • Re: Toupper struct

    No, probabilmente deriva da questo

    while(prova.nome!='\n');

    dato che non è detto che la stringa termini con '\n'

    no perchè se invece di scrivere
    
    prova.nome[i]=toupper(prova.nome[i]);
    
    scrivo così:
    
    toupper(prova.nome[i]);
    
    il programma non mi trasforma il testo in maiuscolo però funziona, non da errori e soprattutto non smette di funzionare
  • Re: Toupper struct

    no perchè ...
    Mi dispiace che non vuoi seguire il mio consiglio ...

    Fossi in te scriverei così
    
      int i=0;
      while(prova.nome[i])
      {
    	  prova.nome[i]=toupper(prova.nome[i]);
    	  i++;
      }
    
    ma fai come vuoi ...
Devi accedere o registrarti per scrivere nel forum
3 risposte