Ich versuche den Befehlsparameter mit argv [] zu vergleichen, aber es funktioniert nicht. Hier ist mein Code.
%Vor%In der Hauptfunktion
%Vor%Aber das funktioniert nicht ... Ich weiß nicht, warum dieser Vergleich nicht funktioniert.
Sie können Zeichenketten nicht mit ==
vergleichen. Verwenden Sie stattdessen strcmp
.
Der Grund dafür ist, dass der Wert von "..."
ein Zeiger ist, der die Position des ersten Zeichens in der Zeichenkette darstellt, wobei der Rest der Zeichen dahinter steht. Wenn Sie "-d"
in Ihrem Code angeben, wird eine ganz neue Zeichenfolge im Speicher erstellt. Da die Position der neuen Zeichenfolge und argv[1]
nicht identisch sind, gibt ==
0
zurück.