2014-12-14 2 views
-2
#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"를 인쇄하십시오.

+0

정확히 무엇이 문제입니까? – carloabelli

+0

여러 가지 방법으로 시도했지만 명령 줄 인수를 사용하는 방법을 찾을 수 없습니다. – Richard

+0

문제는 argv [0]이 실행 파일의 이름 일 가능성이 높습니다. 사람이 첫 번째 명령 줄 인수로 생각하는 것이 아닙니다. – apnorton

답변

0

인덱스 0은 실행 파일 자체의 이름이므로 명령 줄 인수는 인덱스 1로 시작합니다. 비교에서 대소 문자를 구분해야합니까? 그렇지 않다면 다음과 같은 간단한 작업을 수행 할 수 있습니다.

#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; 
}