728x90

#include<stdio.h>
#include<conio.h>
int  GetTen(int  N)   // 10의 N승 구하여 돌려주는 함수
{
   int  a;
   int  s=1;
   for(a=1;a<=N;a++)
          s=s*10;
   return(s);
}
int  Atoi( char  *ap)   // 문자열을 이용하여 정수 값을 돌려주는 함수
{
   int   a;
   int   N=0;
   int   s=0;
   for(a=0;ap[a];a++, N++);  //  N= strlen(ap); 를 대신하여 만듬
   for(a=0;a<N;a++)
       s=s+(ap[a]-48)*GetTen(N-a-1);   <<---이 부분 (ap[a]-48) 이게 이해가 되질 않습니다.
    return(s);
}
void main()
{
 char  M[ ]="12";
char   N[ ]="456";
 int  t;
  t= Atoi(M) + Atoi(N) ;
  printf("%s+%s=%d\n", M, N, t); // 12+456=468
}


atoi라는 함수를 제가 직접 짜보는 문제입니다.

왜 48을 빼야되는건지 자세히 설명해주시면 감사하겠습니다.

======================================

숫자만 거슬리는가? 다른 부분도 지적할 것들을 찾아보는 것은 어떨지..

728x90

+ Recent posts