프로그래밍

 3198, 1/160 회원가입  로그인  
   hotchoco89
   간단한 질문 하나만

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3198 [복사]


#include <stdio.h>

int str_char(const char str[], int c)
{
        int i;

        for(i=0; str[i]!='\0'; i++)
                if(str[i] == c)
                        return (i);
        return -1;
}
int main(void)
{
        int no;
        char ch[10];
        
        printf("영문자를 입력해주세요 : ");
        scanf("%s", ch);

        no = str_char("ABCDEFGHIJKLMNOPQRSTUVWXYZ""abcdefghijklmnopqrstuvwxyz", ch[0]);
        
        if(no>=0 && no<=25)
                printf("이것은 영대문자 중 %d번째 입니다.\n", no+1);
        else if(no>=26&&no<=51)
                printf("이것은 영소문자 중 %d번째 입니다.\n", no-25);
        else
                printf("이것은 영문자가 아닙니다.\n");
        system("pause");
}

여기서 맨 처음 함수 str_char에서 매개 변수 중에 int c가 있는데
main에서 호출 할 때는 인자를 ch[0]을 주거든요?
그런데 ch[0]은 char 형인데 이게 가능한가요 ?
또 str_char의 for문에서 if 비교할 때 str[i] 하고 c도 타입이 다른데 비교 가능한가요?
타입이 다른데 자동으로 타입 바꾸는건가요 ?

  Hit : 6528     Date : 2011/10/26 07:59



    
dbsgud2330 제가 아는대로 대답해드리면요~ㅋㅋ
int str_char(const char str[], int c)
에서 ch[0]을 넘겨줄때
입력한 문자열중 제일 앞에있는 문자를 아스키값으로 넘겨주는데
이 아스키값을 int형으로 받는겁니다
char형으로 받아도 상관없어요~
2011/10/30  
dbsgud2330 태클거는건아닌데요..ㅋㅋㅋ
어차피 문자 맨 앞에것만 검사하는건데
char ch[10]보단 char ch로 하는게 더 낫지않을까싶네용 ㅋㅋ
2011/10/30