2014-04-01 2 views
-1

argv [] []를 공백 ​​문자와 비교하고 싶습니다. 그러나, 그것은 나를시키지 않을 것이다. 'a', 'b', 'c'등과 같은 다른 문자로 시도했을 때 작동하지만 공백이 있으면 작동하지 않습니다.argv [] []를 공백 ​​문자와 비교하는 방법은 무엇입니까?

if(argv[1][1] == ' ') 
{ 
    printf("Space Detected\n"); 
} 

공간 ASCII 번호는 사용하지 않으려 고 시도했습니다. 다른 문자 'ASCII 번호를 사용해 보았습니다. 작동합니다.

나는 또한 '\'시도가 없습니다.

argv [] []를 공백과 비교할 수있는 다른 방법이 있습니까?

제한 사항 : 명령 줄에 인용 부호, 백 슬래시를 사용하는 것을 허용하지 않습니다.

int main(int argc, char *argv[]) 
{  
    printf("Program Running...\n\n"); 

    if((argc == 2) || ((argv[1][0] == '-') && (argv[1][1] == 'A'))) 
    { 
     printf("Option A.\n"); 
     printf("argv[1][2]: %c\n", argv[1][2]); 

     printf("argv[1]: %s\n", argv[1]); 

     if(argv[1][2] == ' ') 
     { 
      printf("Space Detected\n"); 
     } 

    } 

    return 0; 
} 
+2

작품 의도 한대로

이 하나 개의 매개 변수입니다. –

+0

무엇을 의미합니까? –

+2

이 코드에는 아무런 문제가 없지만 문제는 다른 곳에서 발생합니다. – Biduleohm

답변

2

프로그램에 대한 매개 변수는 공백으로 구분됩니다 :

이 내가 일하고 있어요 코드입니다. 따라서 실제로 하나를 입력하려면 "" (최소한 윈도우에서는)을 사용해야합니다.

콘솔 예제;

my.exe "a b c" 

세 가지 매개 변수 :

my.exe a b c 
+0

또한 작동하지만 커맨드 라인에서 따옴표, 백 슬래시 등을 사용할 수 없습니다. –

+0

@LordRixuel :'exec'를 호출하는 래퍼 프로그램은 어떻습니까? –

+0

@KerrekSB 나는 exec를 사용할 수 없다. –

관련 문제