View Full Version : Principiante: metodo simile al toLowerCase()
Negative_creep
10-11-2007, 17:17
Ciao a tutti, sono alle prime armi con C e volevo creare un programma che inserita una lettera in minuscolo mi stampasse la stessa in maiuscolo, il fatto è che non mi funziona, non stampa la lettera maiuscola.
Ecco il programma:
#include <stdio.h>
#include <stdlib.h>
char cambia(char x){
if (x == 'x')
return x='X';
else return 0;
}
int main(void) {
char c;
printf("Inserisci una lettera: ");
scanf("%c",&c);
c = cambia(c);
printf("Risultato %c",c);
}
Grazie in anticipo per l'eventuale aiuto.
volevo creare un programma che inserita una lettera in minuscolo mi stampasse la stessa in maiuscoloMa lo vuoi per qualunque lettera minuscola??? Perché il tuo programma funziona perfettamente ma solo per la lettera 'x' che converte in 'X', per qualunque altra lettera ritorna il carattere nullo.
Negative_creep
10-11-2007, 18:10
Ma lo vuoi per qualunque lettera minuscola??? Perché il tuo programma funziona perfettamente ma solo per la lettera 'x' che converte in 'X', per qualunque altra lettera ritorna il carattere nullo.
eh già...mi servirebbe per tutte le lettere. Dovrò aggiungerne altre 20 dell'alfabeto nel metodo cambia?
Cmq grazie! ;)
eh già...mi servirebbe per tutte le lettere. Dovrò aggiungerne altre 20 dell'alfabeto nel metodo cambia?Se usi toupper() (http://cppreference.com/stdstring/toupper.html) fai molto prima. ;)
Negative_creep
10-11-2007, 19:12
Già ma se la funzione che restituisce una lettera maiuscola la voglio creare io senza usare quelle della stdlib ?
E' questo il mio intento..
HiroNakamura
10-11-2007, 19:14
prova così:
#include <stdio.h>
#include <stdlib.h>
char cambia(char x){
return x-32;
}
int main(void) {
char c;
printf("Inserisci una lettera: ");
scanf("%c",&c);
c = cambia(c);
printf("Risultato %c",c);
}
Questo perchè le lettere maiuscole distano 32 posizione dalle rispettive minuscole. prova e fammi sapere ;)
Già ma se la funzione che restituisce una lettera maiuscola la voglio creare io senza usare quelle della stdlib ?
E' questo il mio intento..char maiuscolo (char c)
{
return c >= 'a' && c <= 'z' ? c-32 : c;
}
Negative_creep
11-11-2007, 11:45
prova così:
#include <stdio.h>
#include <stdlib.h>
char cambia(char x){
return x-32;
}
int main(void) {
char c;
printf("Inserisci una lettera: ");
scanf("%c",&c);
c = cambia(c);
printf("Risultato %c",c);
}
Questo perchè le lettere maiuscole distano 32 posizione dalle rispettive minuscole. prova e fammi sapere ;)
Geniale....Chi ci avrebbe mai pensato?Funziona! Grazie mille...Ora provo anche questo di Andbin:
char maiuscolo (char c)
{
return c >= 'a' && c <= 'z' ? c-32 : c;
}
Ah dimenticavo, il programma va bene ma per fare un controllo se l'utente inserisce una lettera Maiuscola anzichè minuscola?se la inserisce già maiuscola con il codice di HiroNakamura restituisce un numero...
Negative_creep
11-11-2007, 13:57
char maiuscolo (char c)
{
return c >= 'a' && c <= 'z' ? c-32 : c;
}
Molto bene...Funziona perfettamente! Grazie infinite!:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.