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?
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
codice:#include <ctype.h> int toupper(int c)
Quella lavora su un carattere ... e' meglio
codice:#include <string.h> char *strupr(char *)
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?
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';
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
Gia' ... ma se la stringa contenesseOriginariamente 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
codice001!
... ?
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
Ecco ... quindi il tuo codice si avvicina al mio ...