Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C] Trasformazione stringa in Maiuscolo

    Salve!!!
    Ho la necessità di trasformare una stringa da Minuscolo a Maiuscolo!!!
    C'e' qualche funzione in particolare?

    oppure devo fare il solito ciclo for con l'algoritmo ASCI


    In che libreria si trova? e come si chiama?
    Agos

  2. #2
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    codice:
    #include <ctype.h>
    int toupper(int c)

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quella lavora su un carattere ... e' meglio

    codice:
    #include <string.h>
    char *strupr(char *)

  4. #4
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    beh, chiaramente andrebbe inserita in un ciclo che scorre tutta la stringa...

    Però fra i prototipi contenuti nell'header string non trovo la strupr... come mai?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La strupr non e' ANSI C ma e' di uso comune ed e' utilizzabile con tanti compilatori ...

    Che poi equivale a

    codice:
      char * cp;
      for (cp=string; *cp; ++cp)
          if ('a' <= *cp && *cp <= 'z')
              *cp += 'A' - 'a';

  6. #6
    Prova questo:

    void StrMod (char * stringa)
    {
    while (*stringa != '\0')
    {
    *stringa &= 223;
    stringa++;
    }
    }

    Dovrebbe funzionare, Es:

    a = 61h = 0110.0001

    A = 41h = 0100.0001

    223 = 1101.1111
    (('a' - 'A') = 20h; ffh-20h = dfh; dfh = 223)
    Experience is what you get when you don’t get what you want

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Xaratroom
    Prova questo:

    void StrMod (char * stringa)
    {
    while (*stringa != '\0')
    *stringa &= 223;
    }

    Dovrebbe funzionare, Es:

    a = 61h = 0110.0001

    A = 41h = 0100.0001

    223 = 1101.1111
    Gia' ... ma se la stringa contenesse

    codice001!

    ... ?

  8. #8
    In effetti trasforma maiuscole in minuscole
    30h = 0011.0000

    la funzione modificherebbe 30h in 10h quindi un cotrollo non lo toglie nessuno:

    void StrMod (char * stringa)
    {
    while (*stringa != '\0')
    {
    if (*stringa >= 'a' && *stringa <= 'z')
    {
    *stringa &= 223;
    }
    stringa++;
    }
    }
    Experience is what you get when you don’t get what you want

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ecco ... quindi il tuo codice si avvicina al mio ...

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.