Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-03-2007, 23:08   #1
ugo86
Junior Member
 
L'Avatar di ugo86
 
Iscritto dal: Nov 2006
Messaggi: 15
[C] Isdigit & Isalpha

Ciao ragazzi, innanzitutto grazie mille per il vostro aiuto continuo!

In poche parole ho queste due semplicissime funzioni ma non riesco ad utilizzarle!

Il mio programma riceve un intero e lo controlla.

Deve essere compreso tra 1 e 3... quindi voglio distinguere se è un numero, se è una lettera... o se non è nè l'uno e nè l'altro (ad esempio un punto).

Il mio programma è il seguente:

Codice:
#include <stdio.h>
#include <ctype.h>
main(){
   int a, control=0;
   while(control==0){
       printf("Inserisci il numero   ");
       scanf("%d", &a);  //preleva l'intero
       
       if (isdigit(a)!=0){  //se è un numero
        if( a>=1 && a<=3 ){
         printf("scelta corretta\n\n");
         control = 1;
         break;
         }
        else
         printf("Numero non corretto\n\n");
        }               //fine if isdigit

       if (isalpha(a)!=0)
        printf("e' una lettera\n\n");
       
       if(isalnum(a)==0)
        printf("Non e' ne' una lettera e nemmeno un numero!!!\n\n");
   }            //fine while          
   printf("Fine del programma\n\n");
   system("pause");
   }            //fine main
C'è qualcosa che non va... non funziona! Ma non sarà che ste funzioni isdigit, isalpha e isalnum ACCETTANO SOLO IL CODICE ASCII?? Come faccio a usarle se ho una variabile di tipo intera???
ugo86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 00:01   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
int isdigit( int ch );

passando un char

char a;
scanf("%c", &a);
isdigit(a)

se a è un carattere da '0' a '9' isdigit ritorna un valore diverso da 0
idem come sopra per isalpha
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 08:37   #3
ugo86
Junior Member
 
L'Avatar di ugo86
 
Iscritto dal: Nov 2006
Messaggi: 15
thank's

Grazie vizz! Il problema della funzione è risolto... però è rimasto il problema del ciclo! Me ne fa più di uno... c'è ancora qualcosa che non va!

Ti mando il programma:

Codice:
main(){
   char a, control=0;
   while(control==0){
       printf("Inserisci il numero   ");
       scanf("%c", &a);  //preleva l'intero
       
       if (isdigit(a)!=0){  //se è un numero
        if( a>=1 && a<=3 ){
         printf("scelta corretta\n\n");
         control = 1;
         break;
         }
        else
         printf("Numero non corretto\n\n");
        }               //fine if isdigit

       if (isalpha(a)!=0)
        printf("e' una lettera\n\n");
       
       if(isalnum(a)==0)
        printf("Non e' ne' una lettera e nemmeno un numero!!!\n\n");
   }            //fine while          
   printf("Fine del programma\n\n");
   system("pause");
   }            //fine main
ugo86 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 08:58   #4
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
if( a>=1 && a<=3 ) non è possibile farlo confrontando un char.
qui dovresti convertire con atoi il char in un intero e poi confrontarlo.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 10:44   #5
ugo86
Junior Member
 
L'Avatar di ugo86
 
Iscritto dal: Nov 2006
Messaggi: 15
insomma non si può fare

A regà.... in finale non esiste modo per capire che tipo di lettera si è inserita in un intero???
ugo86 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 11:04   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da ugo86 Guarda i messaggi
A regà.... in finale non esiste modo per capire che tipo di lettera si è inserita in un intero???
Già questa frase non ha molto senso....

Codice:
char c;

scanf ("%c", &c);

if (isdigit (c))
{
    if (c >= '1' && c <= '3')
        printf ("Numero corretto\n");
    else
        printf ("Numero non corretto\n");
}
else if (isalpha (c))
    printf ("Lettera\n");
else
    printf ("Altro carattere\n");
Cioè ... quale è il problema??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 11:30   #7
ugo86
Junior Member
 
L'Avatar di ugo86
 
Iscritto dal: Nov 2006
Messaggi: 15
ecco cosa mi era sfuggito!

Grande and! Fortuna che ci sei te, SEI UN MAGO!!!
Mi era sfuggito che i numeri bisognava metterli tra le virgolette!

hehehehehe, grazie mille caro!
ugo86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
Identikit della scheda video perfetta, p...
SUV, 100% elettrico e costa meno di un b...
Hai mai caricato un referto su ChatGPT? ...
Apple vuole un nuovo campus nella Silico...
DJI Osmo 360, la nuova action cam a 360&...
Lo strumento anti-requisiti per Windows ...
Utenti di Claude in rivolta: 'I bei vecc...
Rocket Lab Mars Telecommunications Orbit...
NVIDIA GeForce RTX: supporto driver su W...
iliad ha iniziato a vendere smartphone d...
La cinese SatNet ha lanciato un nuovo gr...
Cloud sovrano europeo: a che punto siamo...
The Medium arriverà al cinema gra...
Addio alle faccende domestiche? Il robot...
Fallito il primo lancio del razzo spazia...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v