私はC/C++をかなり新しくしており、コマンドライン引数を学習しています。 strcpyを使ってコマンドライン引数をソートしようとしていますが、それは私に悪い出力を与えています。例: strcpyを使用してコマンドライン引数をソートできない
I/P:私は午前
O/P:AMI 私は
誰も私がここで間違ってやっているものに私を助けることができますか?注意:私はこのプログラムをargc = 3のみで実行しています。上記の例に記載されているように、このコードは入力用に実行されています(ソートされます)。 私はデバッグのためにループを削除しました。
#include "iostream"
#include "cstdlib"
#include "cstring"
using namespace std;
int main (int argc, char **argv)
{
char temp[100];
//sorting my command line arguments
if(strcmp(argv[1],argv[2])>0)
{
strcpy(temp,argv[1]);
strcpy(argv[1],argv[2]);
strcpy(argv[2],temp);
}
cout<<argv[1]<<endl;
cout<<argv[2]<<endl;
return 0;
}
コマンドライン引数のサイズは自動的に変更されないので、それらが同じ長さにならない限り、それらをコピーすることはできません。 – Galik
@CroCo最初に文字列を比較しています。それを基にして、私はスワップ/ソートしています。 – siddyi
@ Galikどのように可変長の引数をソートできますか? – siddyi