Einführung
In diesem Projekt lernst du, wie du Befehlszeilenargumente in einem C-Programm analysieren und verarbeiten kannst. Dies ist eine grundlegende Fähigkeit in der Softwareentwicklung, da viele Programme Befehlszeilenargumente akzeptieren und verarbeiten, um ihr Verhalten anzupassen.
👀 Vorschau
$ gcc cmd.c -o cmd
$./cmd --arg1 1 --arg2 demo --arg9 labex
arg1:1
arg2:demo
arg9:labex
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du eine C-Datei erstellen und die grundlegende Struktur eines C-Programms schreiben kannst
- Wie du Befehlszeilenargumente analysieren und Parameter-Namen und -Werte extrahieren kannst
- Wie du die Parameter-Namen und -Werte im erforderlichen Format ausgeben kannst
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Den Begriff von Befehlszeilenargumenten zu verstehen und wie du sie in einem C-Programm verwendest
- Ein Programm zu implementieren, das Befehlszeilenargumente analysieren und verarbeiten kann
- Dein Wissen um die C-Programmierung anzuwenden, um ein praktikables Problem zu lösen
Erstellen Sie die C-Datei
In diesem Schritt erstellen Sie die C-Datei für das Befehlszeilenargumente-Programm.
- Öffnen Sie ein Terminal und navigieren Sie zum Projektverzeichnis:
cd ~/project
- Erstellen Sie in dem Projektverzeichnis eine neue C-Datei namens
cmd.c:
touch cmd.c
- Öffnen Sie die Datei
cmd.cin einem Texteditor und fügen Sie den folgenden Code hinzu:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// Ihr Code wird hier stehen
return 0;
}
Dies ist die grundlegende Struktur des C-Programms, das die Befehlszeilenargumente verarbeiten wird.
Implementieren Sie die Analyse von Befehlszeilenargumenten
In diesem Schritt implementieren Sie die Logik, um die Befehlszeilenargumente zu analysieren und die Parameter-Namen und -Werte auszugeben.
- Fügen Sie in der
main()-Funktion eine Schleife hinzu, um durch die Befehlszeilenargumente zu iterieren:
for (int i = 1; i < argc; i++) {
// Ihr Code wird hier stehen
}
Die Schleife beginnt bei Index 1, da argv[0] den Programmnamen enthält.
- Innerhalb der Schleife überprüfen Sie, ob das aktuelle Argument mit
--beginnt:
if (strncmp(argv[i], "--", 2) == 0) {
// Das Argument ist ein Parameter
char *param = argv[i] + 2; // Entfernen Sie das führende "--"
char *value = NULL;
// Überprüfen Sie, ob nach dem Parameter ein Wert vorhanden ist
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Überspringen Sie das Wertargument
}
printf("%s:%s\n", param, value);
}
Dieser Code extrahiert den Parameter-Namen und -Wert aus den Befehlszeilenargumenten und gibt sie im erforderlichen Format aus.
- Der endgültige Code lautet wie folgt:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++) {
if (strncmp(argv[i], "--", 2) == 0) {
char *param = argv[i] + 2; // Entfernen Sie das führende "--"
char *value = NULL;
// Überprüfen Sie, ob nach dem Parameter ein Wert vorhanden ist
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // Überspringen Sie das Wertargument
}
printf("%s:%s\n", param, value);
}
}
return 0;
}
- Speichern Sie die Datei
cmd.c.
Kompilieren und Ausführen des Programms
In diesem Schritt werden Sie das C-Programm kompilieren und es mit einigen Beispiel-Befehlszeilenargumenten ausführen.
- Kompilieren Sie die Datei
cmd.c:
gcc cmd.c -o cmd
Dies erstellt eine ausführbare Datei namens cmd.
- Führen Sie das Programm mit einigen Beispiel-Befehlszeilenargumenten aus:
./cmd --arg1 1 --arg2 demo --arg9 labex
Sie sollten die folgende Ausgabe sehen:
arg1:1
arg2:demo
arg9:labex
- Versuchen Sie, das Programm mit einigen doppelten Parametern auszuführen:
./cmd --testarg1 1 --testarg2 demo --testarg1 labex
Sie sollten die folgende Ausgabe sehen:
testarg1:1
testarg2:demo
testarg1:labex
Herzlichen Glückwunsch! Sie haben das Befehlszeilenargument-Analyse-Programm erfolgreich implementiert.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.



