25/10/2023 - oregon ha scritto:
Antonio… stai contando cifre e lettere, a cosa servono contatori di vocali e consonanti??
Ho corretto il codice credo che dovrebbe essere a posto:
# include <stdio.h>
# include <string.h>
#include <ctype.h>
#include <stddef.h>
# define Dimensione 50
//Programma che suddivide una strinaga mista lettere e numeri e li separa
//Indicando la composizione delle due stringhe: lunghezza
int main (void)
{
//Uso della funzione Isdigit che rstituisce un valore diverso da zero !=0 se digito una cifra
int LunghezzaStringa=0,LunghezzaNumero=0,Cifre=0,Lettere=0,LungNumeroStringa=0;
char Stringa[Dimensione];
char Numero[Dimensione],NumeroStringa[Dimensione];
printf("%s","Inserire una stringa");
scanf(" %s", Stringa );
LunghezzaStringa=strlen(Stringa);
printf("%s %d \n","La lunghezza e': ",LunghezzaStringa);
//verifico se ho inserito un numero
for(size_t i=0;Stringa[i]!='\0';i++)
{
if(isdigit(Stringa[i])!=0)
{
Cifre++;//Incremento il numero il numero di cifre inserito
Numero[LunghezzaNumero++]=Stringa[i];//Inserisco Nella variabile Numero La stringa iesima partendo da 0 e poi incremento
Numero[LunghezzaNumero]='\0';//Inserisco il carattere terminatore nella nuova posizione
}
else
{
Lettere++;//Incremento il numero di Lettere
NumeroStringa[LungNumeroStringa++]=Stringa[i];//Inserisco Nella variabile Numero La stringa iesima partendo da 0 e poi incremento
NumeroStringa[LungNumeroStringa]='\0';//Inserisco il carattere terminatore nella nuova posizione
}
}//Exit for
//Verifico con un messaggio se ho inserito una o più cifre
if(Cifre==1) printf("%s \n","Hai inserito una Cifra");
else if (Cifre>1) printf("%s %d %s \n","Hai inserito:",Cifre,"Cifre");
//****************************************************************************
//Verifico con un messaggio se ho inserito una o più lettere
if(Lettere==1) printf("%s \n ","Hai inserito una Lettera");
else if (Lettere>1) printf("%s %d %s \n","Hai inserito:",Lettere,"Lettere");
//******************************************************************************
// Verifico come è composto il numero nello specifico Più di un numero,1 numero oppure 0
if(LunghezzaNumero>1)printf("%s %s %s %d %s \n","Il Numero Inserito",Numero,"Ha",LunghezzaNumero,"Cifre");
else if(LunghezzaNumero==1)printf("%s %s %s %d %s \n","Il Numero Inserito",Numero,"Ha",LunghezzaNumero,"Cifra");
else if (LunghezzaNumero==0) printf("%s \n","Non Hai inserito Alcun numero");
//Verifico come è composta la stringa nello specifico Più di un Carattere,1 Carattere oppure 0
if(LungNumeroStringa>1)printf("%s %s %s %d %s \n","La stringa Inserita",NumeroStringa,"Ha",LungNumeroStringa,"Lettere");
else if(LungNumeroStringa==1)printf("%s %s %s %d %s \n","La stringa Inserita",NumeroStringa,"Ha",LungNumeroStringa,"Lettera");
else printf("%s","Non Hai inserito Alcuna Lettera");
}