Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    22

    [C] La tolower() non mi funziona più

    Ciao, ho fatto diverse prove usando la funzione int tolower(int) della libreria <ctype.h>, ma non funziona palesemente!

    Con il seguente programma, ciò che vedo è che, non appena la freccetta gialla del debugger (che indica l'istruzione corrente) mira alla riga numero 13, toccando il tasto "Next line", la freccetta salta direttamente alla riga 15, cioè la riga dove è presente la tolower viene completamente ignorata e l'istruzione "tolower(c);" non viene proprio eseguita! Tanto è vero che invece che stampare "Cc" questo programma produce in output "CC".

    codice:
     #include <stdio.h>             
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    int main()
    {
        char stringa[5] = "CIAO";
    
        int c;
        c=stringa[0];
        printf("%c", c);                         //13
        tolower(c);                               //14
        printf("%c", c);                        // 15
        return 0;
    }
    e in più nella finestra "Build message" appare il seguente warning:

    "C:\Users\..\.....\main.c|14|warning: statement with no effect [-Wunused-value]| ".

    Se dichiaro "char c" invece che int, non cambia assolutamente niente: la tolower è ignorata e ottengo lo stesso warning... per non parlare di questo:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    int main()
    {
        char stringa[5] = "CIAO";
        int i;
    
        for(i=0; i<strlen(stringa); i++)         //11
            tolower(stringa[i]);                      //12
                                                             //13
        for(i=0; i<strlen(stringa); i++)
            printf("%c", stringa[i]);
    
        return 0;
    }



    l'output è "CIAO" e il messaggio di warning è sempre lo stesso...
    "C:\Users\..\.....\main.c|12|warning: statement with no effect [-Wunused-value]| ".


    Non ho mai avuto problemi di questo genere usando questa funzione! Non ho idea di cosa potrebbe essere
    Ultima modifica di rino95; 30-10-2016 a 13:22

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da rino95 Visualizza il messaggio
    non funziona palesemente!
    Ovviamente, va usata così

    c=tolower(c);

    Non so come tu l'abbia usata ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    22
    Ovviamente sono un completo idiota, perché l'avevo dimenticato! Mi scuso per il post inutile che ho aperto e ti ringrazio.

Tag per questa discussione

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.