命令行按字母顺序排列?

时间:2014-12-14 05:32:14

标签: c++ command-line

#include <iostream>
using namespace std;

int main(int argc, char *argv[]) {

if(argv[0] < argv[1])
        cout << "IN ORDER";
else
cout << 'NOT IN ORDER";

return 0;
}

不知道如何。

什么是命令行参数?我该如何使用它们? 如果命令行参数按字母顺序升序,我必须编写一个打印在打印件上的程序是“IN ORDER”;如果没有打印“NOT IN ORDER”,如果这些参数乱序。

1 个答案:

答案 0 :(得分:0)

您的命令行参数以索引1开头,因为索引0是可执行文件本身的名称。你需要在比较中区分大小写吗?如果没有,你可以做一些简单的事情:

#include <string.h>
#include <stdio.h>

int main( int argc, char ** argv )
{
    int index;
    /*for( index = 1; index < argc; ++index )
     * printf( "argv[%d] = %s\n", index, argv[index] );
     */
    for( index = 1; index < argc - 1; ++index )
        if( strcmp( argv[index], argv[index + 1] ) > 0 )
            break;
    int in_order_flag = ( index == argc - 1 );
    printf( in_order_flag ? "IN ORDER\n" : "NOT IN ORDER\n" );
    return 0;
}