コマンドライン引数の解析を実装する
このステップでは、コマンドライン引数を解析し、パラメータ名と値を表示するロジックを実装します。
main()
関数内に、コマンドライン引数を反復処理するループを追加します。
for (int i = 1; i < argc; i++) {
// ここにコードを記述します
}
ループはインデックス 1 から始まります。なぜなら argv[0]
にはプログラム名が含まれているからです。
- ループ内で、現在の引数が
--
で始まるかどうかを確認します。
if (strncmp(argv[i], "--", 2) == 0) {
// 引数はパラメータです
char *param = argv[i] + 2; // 先頭の "--" を削除します
char *value = NULL;
// パラメータの後に値があるかどうかを確認します
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // 値の引数をスキップします
}
printf("%s:%s\n", param, value);
}
このコードは、コマンドライン引数からパラメータ名と値を抽出し、必要な形式で表示します。
- 最終的なコードは以下の通りです。
#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; // 先頭の "--" を削除します
char *value = NULL;
// パラメータの後に値があるかどうかを確認します
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2)!= 0) {
value = argv[i + 1];
i++; // 値の引数をスキップします
}
printf("%s:%s\n", param, value);
}
}
return 0;
}
cmd.c
ファイルを保存します。