atoi함수를 통해 이전에 했던 문자열 -> 정수 변환을 해보자.
우리가 atoi함수를 사용하기 전에 atoi함수가 무엇인지 어떤 역할을 하는지 인지 해야된다.
#include <stdlib.h>에 내장된 함수인 atoi는 문자열을 숫자로 바꿔주는 함수다.
whitespace : \t, \v, \n, \f, \r, ' '
아스키코드로는 9부터 13까지, ' '는 32
man isspace 명령어를 사용해보자(리눅스 한정)
만일, 두 개 이상이라면 0이 반환된다.
부호가 없다면 기본 양수이다.
ex) 1234 → 1234
ex) 12a34 → 12
이때 다른 문자란 '0' ~ '9'를 제외한 모든 문자이다.
#include <stdio.h>
#include <stdlib.h>
void main()
{
int first, second;
char f_string[17], s_string[20];
printf("input first number > ");
gets(f_string);
printf("input second number > ");
gets(s_string);
first = atoi(f_string);
second = atoi(s_string);
printf("%d * %d = %d\n", first, second, first * second);
}
<결과>
atol, atof 함수와 원형을 알아보자.
atoi = char to int = 문자열을 정수 타입으로
atof = char to double = 문자열을 실수 타입으로
atol = char to long int = 문자열을 long 정수 타입으로 변환한다.
int atoi (const char* cStr);
double atof (const char* cStr);
long int atol (const char* cStr);
cStr이라고 적은 이유는 C스타일의 문자열이라는 것을 강조하기 위해서 변수명을 그렇게 지정했다.
만약에 C++의 string을 이용했다면 c_str() 함수를 이용해서 C스타일의 문자열로 변환해서 이용해야한다.
| https://wtg-study.tistory.com/92
| https://modoocode.com/132
| https://blockdmask.tistory.com/331