Scritta!
Che ve ne pare?
Codice:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int controllo_stringa (string stringa);
int converti_stringa (string stringa);
int main(int argc, char *argv[])
{
string input;
int esito;
int dato;
cout << "Digitare un numero" <<endl;
cin >> input;
esito = controllo_stringa(input);
while (esito ==1)
{
cout << "Formato non accettato, ripetere l'inserimento"<<endl;
cin >> input;
esito = controllo_stringa(input);
}
dato = converti_stringa(input);
cout << input << " per 10 = " <<dato*10<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
int controllo_stringa (string stringa)
{
int i;
int dimensione;
dimensione = stringa.length();
if (dimensione == 0)
{
return 1;
}
//un solo carattere
else if (dimensione == 1)
{
if(isdigit(stringa[0]))
{
return 0;
}
else
{
return 1;
}
}
//almeno due caratteri
else if (dimensione > 1)
{
//scansione stringa
for (i = 0; i < dimensione; i++)
{
if (!isdigit(stringa[i]) || stringa[0] == '0')
{
return 1;
break;
}
}
}
return 0;
}
int converti_stringa (string stringa)
{
char *vettore;
int lunghezza;
int numero;
lunghezza = stringa.length();
vettore = new char [lunghezza+1];
strcpy (vettore, stringa.c_str());
numero = atoi (vettore);
return numero;
}
Poi la inserirò in un contesto diverso e potrò espanderla nel caso in cui mi serviranno i numeri negativi!
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
Ultima modifica di zanardi84 : 11-11-2010 alle 18:03.
|