Ho un altro quesito da sottoporvi.
Praticamente devo ricevere una stringa in input che contenga anche dei numeri e:
-sommare i numeri presenti nella stringa
-creare una cifra composta da tali numeri (ad Es. stringa ----> we34jhu57 ---> cifra = 3457) e sommarla alla somma dei numeri presenti nella stringa.
ecco il listato che ho elaborato io
codice:
//Somma numeri in una stringa
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
const int strlenght=20;
char str[strlenght+1];
char nod[strlenght+1];
int somma, j, i, cifra=0;
cout << "Inserire stringa (max " <<strlenght<< " char) > ";
cin.getline(str, strlenght);
somma = 0; j=0; i=0;
while ('\0'!=str[j])
{
if ((str[j]>='0') && (str[j]<='9'))
{
somma += (int)str[j] - (int)'0';
nod[i] = str[j];
}
j++;
i++;
}
cifra = (int)nod;
cout << "La somma dei numeri presenti nella stringa e' :"<< somma << endl;
cout << "Il numero formato dalle cifre presenti nella stringa e' : " << cifra << endl;
cout << "La loro somma e' : " << somma + cifra << endl;
system("pause");
return 0;
}
l'dea era di creare un'array di appoggio dove inserire sequenzialmente i numeri trovati nella stringa e poi successivamente trasformare l'array in un intero tramite il casting. purtroppo però l'operazione di casting non funziona in modo esatto. Dove sbaglio ?
Grazie