2013-03-16 4 views
0

argv [1]을 취하고 문자를 소문자 또는 대문자로 변환하는 프로그램을 빌드한다고 가정합니다. 그러나 나는 C와는 포인터를 비교하지 않습니다. 포인터와 문자열을 비교하는 방법에 대한 아이디어는 문자별로 비교하고 싶지 않습니다. 여기 당신이 원하는 것은 (대소 문자 구분을위한) 기능을 strcmp 또는 stricmp를 사용할 수있는 코드argv []로 char 변환기 프로그램 작성하기

#include <stdio.h> 
#include <ctype.h> 
#include <string.h> 
int main (int argc,char *argv[]) 
{ 
    char c; 
    if(argc!=2) 
    printf("Wrong use of program \n"); 
    printf("The Format is Lower or Upper \n"); 
    return -1; 
    if ((strcmp(argv[1],"Lower"))==0) 
    { 
          while((c=getchar())!=EOF) 
          { 
                printf("-"); 
                putchar(tolower(c)); 
                printf("\n"); 
                } 
                } 
    if ((strcmp(argv[1],"Upper"))==0) 
    { 
          while((c=getchar())!=EOF) 
          { 
                printf("-"); 
                putchar(toupper(c)); 
                printf("\n"); 
                } 
                } 
    if ((strcmp(argv[1],"Lower"))!=0 && ((strcmp(argv[1],"Upper"))!=0)) 
    { 
          printf("Wrong use of program \n"); 
          printf("The Format is Lower or Upper \n"); 
          return -1; 
          } 

         return 0; 
} 

답변

2

먼저 char 배열이 일치하면 0을 반환하는 strcmp를 사용하십시오.

if (!strcmp(argv[1], "Lower")) 
{ 

둘째로 if 조건에 둘 이상의 명령문이 적용되는 경우 명령문은 {}로 묶어야합니다.

if (argc != 2) 
{ 
    printf("Wrong use of program \n"); 
    printf("The Format is Lower or Upper \n"); 
    return -1; 
} 
+0

여전히 작동하지 않습니다. – Lind

+0

그것은 지금 나를 위해 작동합니다. – suspectus

+0

다음 편집을 보지 못했습니다. 감사합니다. – Lind

관련 문제