Forum
Tipps
News
Menu-Icon

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Wird halt sehr schnell sehr groß... siehe mein Edit in meinem letzten Beitrag...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Gut dann lag ich mit meiner Vermutung ja richtig. ;D

Ja der Parser ist iterativ. dort wird jedes Zeichen einzelnd überprüft. ::)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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:
Zitat
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 ;D
War ganz einfach musste nur angeben das die Funktion einen Pointer zurückgibt. Also

char * klammern();

und nun gehts.
« Letzte Änderung: 04.09.08, 11:08:18 von Andre S. »

Hello,
muss ebenso nen Taschenrechner progn und bin dabei auf euch gestoßen...

gute Ansätze habt ihr, nur würde ich gerne wissen welche funktionen sich hinter strcpy, strncat, puts, gets verbergen?!?

MfG Alex

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

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 zusammenfassenNach Installation funktioniert Programm nicht mehr »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Grundstrich
Der Begriff des Grundstrichs im Bereich der Typografie, bezeichnet den senkrechten Strich der Buchstaben. Bei Schriftarten mit variabler Strichstärke, wie zum Beispi...

Haarstrich
Der Begriff Haarstrich stammt aus dem Bereich der Typographie. Bei Schriften, wie zum Beispiel der Antiquaschrift mit unterschiedlichen Strichstärken, wird zwischen ...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...