String auslesen / Array
-
Hallöchen!
Ich will, aus einem string z.B. 1+2*3-4/6 nur die Zahlen auslesen und in ein Array schreiben!
Hier ist meine Überlegung:int Zahlen(string st_Gleichung)
{
stringstream ss1,ss2;
string st_zahl;
int k=0,m=0, x,temp,a=0;
int zahl;
ss1<<st_Gleichung.length();
ss1>>x;
char such_zeichen[] = "/*+-";
int Zeichenarray[x];
int Zahlenarray[x];
do
{
pos =st_Gleichung.find_first_of(such_zeichen, pos + 1);
cout << "Zeichen an Position: ";
cout << pos << endl; //ausgabe nur für testzwecke
Zeichenarray[k]=pos;
k++;
}while(pos != -1);
system("pause");
//int b=Zeichenarray[0];
int b;for (int i=0; x>i; i++)
{
cout << "a= "<< a<<endl;
cout << "b= " << b<< endl;
st_zahl=st_Gleichung.substr(a,b);
a=Zeichenarray[i];
b=Zeichenarray[i]+1;ss2<<st_zahl;
ss2>>zahl;
cout<<i<< ". Zahl: " << zahl <<endl;
Zahlenarray[m]=zahl;
m++;
temp=Zeichenarray[i];
//cout<<temp;
if (temp==-1) break;
}
for (int n = 0; n<=x ;n++)//test
{
cout <<"Zahlenarray "<< Zahlenarray[n] <<endl;
}
system("pause");
}Mach das ganze Sinn? Oder habt Ihr bessere Ideen?
Vielen lieben Dank schon mal!Valena
-
Valena schrieb:
Ich will, aus einem string z.B. 1+2*3-4/6 nur die Zahlen auslesen und in ein Array schreiben!
Probiers mal so:
#include <string> #include <strstream> using namespace std; int main() { unsigned Zahlenarray[5]; // unsigned, weil minus Vorzeichen oder Subtraktion hier (noch!) nicht geht . char Zeichenarray[4]; // Zahlenarray, Zeichenarray - besser Vector<unsigned>, Vector<char> string a("1+2*3-4/6"); istrstream b(a.c_str()); for (int i = 0; b.good(); i++) { b >> ws >> Zahlenarray[i]; b >> ws >> Zeichenarray[i]; } return 0; }mfg