argv: Platzhalter bereinigen

Ich habe an einem Beispiel im K & R C-Buch gearbeitet, in dem Sie aufgefordert werden, einen RPN-Rechner zu erstellen, der Eingaben über Befehlszeilenargumente akzeptiert. Meine Lösung durchläuft im Wesentlichen die angegebenen Argumente und spuckt die Antwort aus, aber mir ist etwas aufgefallen:

Wenn ich das Multiplikationszeichen (ein Sternchen) geben würde'*' Ohne einfache Anführungszeichen geht gcc davon aus, dass es sich um eine Wildcard-Eingabe handelt. Daher ist meine Eingabe von

$./rpn 5 10 *

gibt mir eine Ausgabe von

read 5
read 10
read rpn
read rpn.c
= 0

Wrapping das Sternchen mit einfachen Anführungszeichen behebt das Problem

$./rpn 5 10 '*'
read 5
read 10
read *
= 50

Meine Frage ist, ob es eine Möglichkeit gibt, Eingaben zu bereinigen, sodass mein Programm nicht erfordert, dass der Stern in einfache Anführungszeichen gesetzt wird. ?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage