07/10/2023 - By65Franco ha scritto:
Ciao,
carica la stringa di input che hai in un arrary
enumera l'array e controlla con isdigit se il carattere è numerico oppure no
appena trovi un carattere che non risulta essere numerico, allora esci dall'enumerazione ed emetti il messaggio di errore
Ti bastano 3 righe di codice con una variabile bool per fare il controllo
Se vuoi testare e validare un carattere alla volta, l'ultimo carattere inserito, allora non ti serve valutare la stringa di input per intera e fai il test del carattere con isdigit e magari in ogni caso che non sia uno spazio
;-
Ho risolto cosi per ora,mano lo miglioro
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
# define True 1
# define False 0
#define N 50 //Definisco la dimensione dell'array
//Programma che verifica l'inserimento di un numero o di un carattere
int main()
{
char vett[N];
int i, lunghezza, numeri,Flag;
printf("Inserire stringa: ");
scanf("%s", vett);
lungghezza=strlen(vett);
printf("\nLa stringa e' lunga %d caratteri.", lunghezza);
for(i=0; i<lunghezza; i++)
{
if(isdigit(vett[i])!=0)
{
Flag=True;
}
{
else if(isalpha(vett[i])!=0);
Flag=False;
}
}
if(Flag==False) printf(" %s \n", "Hai inserito una Lettera");
else printf(" %s \n ","Hai inserito una Cifra");
return 0;
}