ここに私の$ 0.02があります:
#include <stdio.h>
#include <string.h>
int
main (int argc, char *argv[])
{
if (argc != 2) {
printf ("USAGE: ./Person [-f|-l]\n");
return 1;
}
if (strcmp (argv[1], "-f") == 0) {
printf("First Name");
}
else if (strcmp (argv[1], "-l") == 0)
printf("Last Name");
}
else {
printf ("Unknown argument\n");
return 1;
}
return 0;
}
重要なポイント:
1) C では、文字列だけを比較することはできません ("aaa" == "bbb" など)。「strcmp()」(「文字列の比較」) などの特別なライブラリ関数が必要です。
2) ライブラリ関数を使用するには、ヘッダーを #include する必要があります (「printf()」の場合は「stdio.h」、「strcmp()」の場合は「string.h」など)。「man」を使用して、必要なヘッダーを見つけることができます...または関連する呼び出しをグーグルで検索するだけです(「google strcmp」は「man strcmp」と同じ結果を与えるはずです)
3) プログラムの戻り値を使用して「成功」または「失敗」を示すことは、一般的な規則です。「0」は慣例により、通常「成功」を意味します。
4) 最後に、目的のために、「argc」と「argv」を使用してコマンドライン引数にアクセスすることが不可欠です。
5) 上部の "if (argc != 2)" は、少なくとも 1 つのコマンド ライン引数を入力したことを保証します (引数 "0" はプログラム自体の名前です)。持っていない引数を読み取ろうとすると (「配列の末尾を読み取ろうとする」) クラッシュが発生する可能性があるため、これは重要です ;)
「お役に立てば幸いです!