【问题标题】:Command Line Alphabetical Order?命令行字母顺序?
【发布时间】:2014-12-14 05:32:14
【问题描述】:
#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”。

【问题讨论】:

  • 你的问题到底是什么?
  • 我尝试了很多方法,但无法找到如何使用命令行参数。
  • 您的问题很可能是 argv[0] 是可执行文件的名称,而不是人们认为的第一个命令行参数。
  • 好的,所以我发现可执行文件的名称是按字符升序还是什么?
  • 在您的问题中停止使用大写字母。大写字母表示你在大喊大叫,人们不喜欢帮助对他们大喊大叫的人。

标签: c++ command-line


【解决方案1】:

您的命令行参数以索引 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多