A sentimental robot

atoi함수 본문

C

atoi함수

GOD03219 2018. 1. 3. 10:23

#include <stdio.h>
#include <string.h>
void main()
{
 int x;
 char buf[100];

 strcpy_s(buf,"83");      

 

// x = atoi(buf); > buf에 있던 문자 '83'을 int형으로 변환해서 x에 넣기
 x = 0;
 x = buf[0]-48;  // 56(문자'8'의 아스키코드)-48=8
 x = x*10;   // 80
 x =  x+buf[1]-48;     // 80+51-48 = 83


 printf("%s\n",buf);
 printf("%d\n",x);


}


 


 


 

#include <stdio.h>
#include <string.h>

int myAtoi(char s[])
{
 int i;
 int n;
 int sign;

 
 for(i = 0 ; s[i] == ' ' || s[i] == '\t' ; i++);  // 숫자앞에 공백 예외처리


 sign = 1;
 if(s[i] == '-'){     // 음수 예외처리
  sign = -1;
  i++;
 }else if(s[i] == '+') i++;     // 양수


 for(n = 0 ; s[i]>='0' && s[i]<='9 '; i++)
 {
  n=10*n+s[i]-'0';
 }
 return (n*sign);

}


void main()
{
 int x;
 char buf[100];

 

 strcpy_s(buf,"835");  
 x = myAtoi(buf);

 

 printf("%s\n",buf);
 printf("%d\n",x);

 

}

 


 



if(s[i] == '+' || s[i] == '-')
  sign = (s[i++] == '+')? 1 : -1;  


산술 if 문

x = A? B : C

A가 비교문 조건문

A가 true 면 B가 x에 assign

A가 false면 C가 x에 assign

'C ' 카테고리의 다른 글

정렬(sorting)  (0) 2018.01.03
sprintf , srand  (0) 2018.01.03
typedef structure  (0) 2018.01.03
함수포인터  (0) 2018.01.03
strdup함수 활용예제  (0) 2018.01.03