この記事では、C言語においてコマンドライン引数から受け取った文字列を他の変数に代入する方法を解説します。
コマンドライン引数の文字列を扱う方法
コマンドライン引数は、プログラムを実行する際にコマンドラインから渡される情報です。
C言語では、«main関数»の引数としてコマンドライン引数を受け取ることができます。
文字列を他の変数に代入する方法
コマンドライン引数から受け取った文字列を他の変数に代入するには、まず«main関数»の引数を利用します。
«main関数»の引数は、通常、argcとargvという2つの変数で受け取ります。
argcはコマンドライン引数の数を表し、argvは文字列の配列としてコマンドライン引数を格納します。
以下のサンプルコードを見てみましょう。
#include <stdio.h>
int main(int argc, char *argv[]) {
// コマンドライン引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussioneの数number of arguments인수의 수antal argumenterantal argumentaantal argumentennúmero de argumentosAnzahl der Argumentenombre d'argumentsnúmero de argumentosnumero di argomentiを表示Show number of command line arguments명령행 인수의 수 표시Vis antallet af kommandolinjeargumenterVisa antalet kommandoradsargumentToon het aantal opdrachtregelargumentenMostrar número de argumentos de linha de comandoAnzahl der Befehlszeilenargumente anzeigenAfficher le nombre d'arguments de ligne de commandeMostrar número de argumentos de línea de comandoMostra il numero di argomenti della riga di comando
printf("引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussioneの数number of arguments인수의 수antal argumenterantal argumentaantal argumentennúmero de argumentosAnzahl der Argumentenombre d'argumentsnúmero de argumentosnumero di argomenti: %d\n", argc);
// コマンドライン引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussioneの文字列を表示Show command line argument string명령행 인수의 문자열 표시Vis kommandolinjeargumentstrengVisa kommandoradsargumentsträngToon opdrachtregelargumentreeksMostrar string de argumento de linha de comandoBefehlszeilenargumentzeichenfolge anzeigenAfficher la chaîne d'argument de ligne de commandeMostrar cadena de argumento de línea de comandoMostra la stringa dell'argomento della riga di comando
for (int i = 0; i < argc; i++) {
printf("引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussione%d: %s\n", i, argv[i]);
}
// コマンドライン引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussioneの文字列を他の変数に代入Assign command line argument string to other variable명령 행 인수의 문자열을 다른 변수에 할당Tildel kommandolinjeargumentstreng til en anden variabelTilldela kommandoradsargumentsträng till annan variabelWijs opdrachtregelargumentreeks toe aan een andere variabeleAtribuir string de argumento de linha de comando a outra variávelWeisen Sie der Befehlszeilenargumentzeichenfolge eine andere Variable zuAttribuer une chaîne d'argument de ligne de commande à une autre variableAsignar cadena de argumento de línea de comando a otra variableAssegna la stringa dell'argomento della riga di comando ad un'altra variabile
char *arg1 = argv[1];
char *arg2 = argv[2];
// 代入した変数の値を表示Display the value of the assigned variable할당된 변수의 값 표시Vis værdien af den tildelte variabelVisa värdet på den tilldelade variabelnGeef de waarde van de toegewezen variabele weerExibir o valor da variável atribuídaZeigt den Wert der zugewiesenen Variablen anAfficher la valeur de la variable affectéeMostrar el valor de la variable asignada.Visualizza il valore della variabile assegnata
printf("arg1: %s\n", arg1);
printf("arg2: %s\n", arg2);
return 0;
}
上記のコードでは、まずargcを使ってコマンドライン引数の数を表示しています。
次に、forループを使ってargvの中身を順番に表示しています。
そして、argvの要素を他の変数に代入しています。
ここでは、arg1とarg2という変数にargv[1]とargv[2]を代入しています。
実際に上記のコードを実行してみましょう。
以下のようにコマンドライン引数を指定してプログラムを実行します。
$ ./a.out hello world
すると、以下のような結果が表示されます。
引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussioneの数number of arguments인수의 수antal argumenterantal argumentaantal argumentennúmero de argumentosAnzahl der Argumentenombre d'argumentsnúmero de argumentosnumero di argomenti: 3
引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussione0: ./a.out
引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussione1: hello
引数argument인수argumentargumentargumentargumentoStreitargumentargumentodiscussione2: world
arg1: hello
arg2: world
コマンドライン引数の数が3であること、argvの要素が正しく表示されていることが確認できます。
また、arg1とarg2にはそれぞれ«hello»と«world»が代入されていることがわかります。
以上が、コマンドライン引数から受け取った文字列を他の変数に代入する方法の解説です。
コマンドライン引数を活用することで、プログラムの柔軟性を高めることができます。
ぜひ、実際に試してみてください。
例えば、«./a.out hello world»というコマンドを実行すると、«hello»と«world»がコマンドライン引数として渡されます。