in c++ come si fa a controllare che un il valore immasso sia un carattere e non un numero o un carattere speciale??
in c++ come si fa a controllare che un il valore immasso sia un carattere e non un numero o un carattere speciale??
Inviato da janky
in c++ come si fa a controllare che un il valore immasso sia un carattere e non un numero o un carattere speciale??
#include <iostream.h>
void main (void)
{
char var;
cin>>var;
if((var>='A')&&(var<='Z')||(var>='a')&&(var<='z'))
cout<<"Hai inserito un carattere!!!"<<endl;
else
cout<<"Hai inserito un numero o un carattere speciale<<endl;
}
a già è vero !
ma scusa, perchè così non me lo prende giusto??
Codice:#include <iostream.h> const max=20; void main() { char n[max]; char aux; for (int i=0; i<20; i++){ do{ cout<<"Inserisci la "<<(i+1)<<"\° lettera: "; cin>>n[i]; }while((n[i]<='A')&&(n[i]>='Z')||(n[i]<='a')&&(n[i]>='z')); } for (i=0; i<20;i++) { if(n[i]>n[i+1]) { aux=n[i]; n[i]=n[i+1]; n[i+1]=aux; } cout<<n[i]<<", "; } }
prova ad utilizzare la funzione isalpha() contenita nella libreria ctype.h la funzione ritorna 0 se il numero non rappresenta un carattere
Controlla meglio quello che hai scritto e quello che ti e' stato consigliato. )Inviato da janky
ma scusa, perchè così non me lo prende giusto??
Codice:[i] }while((n[i]<='A')&&(n[i]>='Z')||(n[i]<='a')&&(n>='z'));
Comunque usa isalpha(), come ti hanno gia' detto.
man is your friend
si, lo so che ho invertito i minori con i maggiori e viceversa, ma nel programma che devo fare mi serve che se non è una lettera deve uscire.
Solo che scritto cosi' non funziona affatto!Inviato da janky
si, lo so che ho invertito i minori con i maggiori e viceversa, ma nel programma che devo fare mi serve che se non è una lettera deve uscire.
Usa uno dei due modi seguenti:
Codice:for (int i = 0; i < max; i++) do { std::cout << "Inserisci la " << (i+1) << "° lettera: "; std::cin >> n[i]; // scrivilo cosi', non come hai fatto tu //} while (!((n[i]>='A')&&(n[i]<='Z')||(n[i]>='a')&&(n[i]<='z'))); } while (!isalpha(n[i]));
man is your friend
ah!! ecco è vero!Codice://} while (!((n[i]>='A')&&(n[i]<='Z')||(n[i]>='a')&&(n[i]<='z')));
grazie
cmq stò ciclo non me li ordina alfabeticamente, perchè?Codice:if(n[i]>n[i+1]) { aux=n[i]; n[i]=n[i+1]; n[i+1]=aux; }
Manca qualcosa? )Inviato da janky
cmq stò ciclo non me li ordina alfabeticamente, perchè?
Supponendo che tu abbia tentato di implementare un bubble sort (verifica comunque, prima di darti gli esercizi qualcosa ti avranno pure spiegato ), il codice potrebbe assomigliare a questo:
Codice:// bubble sort for (int i = 0; i < max; i++) for (int j = max; j > i; --j) if (n[j-1] > n[j]) { char aux = n[j - 1]; n[j - 1] = n[j]; n[j] = aux; }
man is your friend
madonna se sono newbie
cmq no, non mi hanno spiegato un bel niente!
c'ho una prof di ***** che dà gli esercizi senza spiegare!
cmq grazie
forse, in termini di efficenza sarebbe meglio che il ciclo esterno fosse un ciclo while.Inviato da 3y34|v|31337
Manca qualcosa? )
Supponendo che tu abbia tentato di implementare un bubble sort (verifica comunque, prima di darti gli esercizi qualcosa ti avranno pure spiegato ), il codice potrebbe assomigliare a questo:
Codice:// bubble sort for (int i = 0; i < max; i++) for (int j = max; j > i; --j) if (n[j-1] > n[j]) { char aux = n[j - 1]; n[j - 1] = n[j]; n[j] = aux; }
lascia stare non complicargli la vita!Inviato da devilheart
forse, in termini di efficenza sarebbe meglio che il ciclo esterno fosse un ciclo while.
Perche'?Inviato da devilheart
forse, in termini di efficenza sarebbe meglio che il ciclo esterno fosse un ciclo while.
man is your friend