-5

C プログラムでは、2 つのコマンド ライン引数を取り、次のような関数への 1 つのパラメーターとして連結しています。

some_function(strcat(argv[1], argv[2]));

したがって、たとえば arg1 と arg2 を渡すと、渡される結果は arg1arg2 になります。

そして、関数内で、それらを arg1 と arg2 に再分離する必要があります。次のような strtok() 関数を使用してみました (arg は連結文字列です):

source = strtok(arg, "\\");
destination = strtok(NULL, "\\");

しかし、連結された文字列arg1arg2がソースに格納され、nullが宛先に格納されるため、これは機能していないようです。では、ソースが arg1 で宛先が arg2 になるようにするにはどうすればよいでしょうか。

4

2 に答える 2

2

関数に両方の引数を提供するだけであれば、多くの問題を回避できます。

some_function(argv[1], argv[2]);

その場合、一方をソース用に、もう一方を宛先用に定義するのは簡単です。連結された文字列が必要な場合は、関数で実行できます。

于 2013-04-29T21:08:04.253 に答える