Wird halt sehr schnell sehr groß... siehe mein Edit in meinem letzten Beitrag...
Ich habe da noch eine Frage.
Ich hab eeinen Matheparser gefunden.
www.c-programmieren.com
aber da steht
dann
while(1)
{
//Programmcode
}
Was macht diese Anweisung denn?
Das ist eine Endlosschleife. Du könntest auch schreiben while(true). Ist wahrscheinlich der iterative Ansatz für so einen Parser; beendet wird die Schleife dann (hoffentlich ) ausschließlich manuell durch ein break oder return.
Um nicht nohc einen Thread aufmachen zu müssen...
#include <stdio.h>
#include <stdlib.h>
char klammern(char rechnung[999]);
int main()
{
char rechnung[999];
char temp[999];
printf("Rechnung eingeben: ");
gets(rechnung);
strcpy(temp,klammern(rechnung));
puts(temp);
return 0;
}
char klammern(char rechnung[999])
{
int kl_auf=0,
i=0;
char temp[999];
strcpy(temp,"\0");
do
{
if( rechnung[i]=='(')
{
kl_auf++;
}
if(kl_auf>0)
strncat(temp,rechnung+i,1);
if(rechnung [i]==')')
{kl_auf--;
if(kl_auf==0)
break;
}
i++;
}
while(rechnung[i]!='\0');
//Kontrolle
printf("%i\n",kl_auf);
printf("%s",temp);
return temp;
}
Beim kompilieren meckert der Compiler:
14 [Warning] passing arg 2 of `strcpy' makes pointer from integer without a cast
54 [Warning] return makes integer from pointer without a cast
Also die main() soll nur einen String aufnehmen und am Ende ein Ergebnis ausgeben.
klammern() soll hingegen den Inhalt von Klammern in eine andere Variable kopieren.
Die Funktion alleine läuft auch. Die selbst gebaute Funktion soll irgendwann sich selbst aufrufen und dann die das letzte Klammer in eine Klammer finden (wenn vorhanden).
Aber erstmal reicht mir das was ich bisher geschrieben habe.
EDIT: Ich hab das Problem gefunden
War ganz einfach musste nur angeben das die Funktion einen Pointer zurückgibt. Also
char * klammern();
und nun gehts.
Das sind Funktionen aus den C Standardbibliotheken (z.B. cstdlib, cstdio, cstring etc.). Hier gibts ne IMHO ganz gute Referenz dazu: http://www.cplusplus.com/reference/clibrary/
ggf. dort die Suchfunktion verwenden.
« SQL: Platzhalter, Datensätze zusammenfassen | Nach Installation funktioniert Programm nicht mehr » | ||