Ich bin neu hier

Ich befinde mich gerade dabei die notwendigen Programme für mein Programmieren-Kurs zu schreiben um die Zulassung für die Klausur zu bekommen.
Die Aufgaben sind manchmal etwas gemein und gerade als C-Anfänger überseh ich da gerne mal die ein oder anderen Problemstellen...
Naja von den 7 zu lösenden Aufgaben fehlen mir noch 2 wobei ich bei 1 nichtmehr weiter komme und bei der anderen nichtmal die Aufgabenstellung versteh

Deswegen hoffe ich, dass mir hier jemand bei der einen Aufgabe noch weiterhelfen kann.
Die Aufgabe:
Schreiben Sie ein Programm "rechner", das als einziges Kommandozeilen-
Argument eine Grundrechenaufgabe enthält. Die Argumente der Aufgabe sollen
ganze positive Zahlen sein.
Aufrufbeispiele:
rechner 2*8 oder rechner 63+37
nicht aber rechner 2*-8 oder rechner -63+37
Die Rechenaufgabe ist also ohne Leerzeichen anzugegeben, d.h. nur ein Aufrufparameter!
Das Programm soll den gesamten Aufrufparameter, das Rechensymbol
(+-*/) selbst, seine Position im übergebenen String, beide Argumente und das
Ergebnis ausgeben.
In dieser Aufgabe sind vor allem spezielle Stringfunktionen aus der string.h und
die Konvertierfunktionen, wie atoi(), atol(),... einzusetzen.
Das Programm soll bei der Übergabe einer falschen Anzahl von Parametern mit
einem Fehlercode und einem Hinweis beendet werden!
So ich habs bis jetzt geschafft die beiden Zahlen aus dem String auszulesen.
Ich hab leider keinen Schimmer wie ich das Zeichen bekommen kann...
Wenn ich es als char-Variable hätte würde ich dann nen switch case machen für die 4 Grundrechenarten und den dann das Ergebnis ausgeben lassen.
Wie genau ich die Fehlermeldung für eine eingabe die größer als 2 Zahlen + ein Zeichen mache weiß ich auch noch nicht.
In der Aufgabe steht zwar das ich mich in der string.h mal umgucken soll....da find ich allerdings nichts was mir hilft...
Hier mal mein Code bis jetzt:
Code: Alles auswählen
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (void){
char st [10], *zeichen,test;
int a,b;
printf("Bitte eine Rechnung ohne Leerzeichen angeben: \n");
scanf("%s", &st); // Er holt sich den string
a = strtol (st, &zeichen,0); // Der erste Wert wird a zugeordnet und ich erhalte nen Zeiger der auf den Rest des Strings zeigt
printf("Erste Wert = %d\n Zeichen = %s\n",a,zeichen);
zeichen++; // Zeiger zeigt auf 2. Wert
printf("Test: %s\n",zeichen); // Test
b= atoi (zeichen); //Zuweisung des 2. Wertes auf b mithilfe von atoi
printf("Test: %d\n",b);
zeichen--; // Zeiger zeigt wieder auf das Zeichen
printf("Test: %s\n",zeichen); //Test
//printf("Test: %s\n",*zeichen); //Geht nicht...leider keine Ahnung wieso?
// Wie krieg ich jetzt nur das Zeichen als char aus dem String raus gelesen?
// Danach switch case für die 4 Grundrechenarten
// Keinen Schimmer wie ich die Fehlermeldung reinbringen soll das der aufhört wenn man mehr als 2 Zahlen und 1 Zeichen eingibt...
mfg Monkey101
p.s. Ich seh grad das sieht im Codefenster nen bissle unübersichtlich aus...ich pack die .cpp datei mal mit in den Anhang