Hat dir diese Antwort geholfen?
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.