문자열을 숫자로 변환하는 atoi함수, _atoi64함수, atol함수, atof함수에 관한 내용입니다.
※요약
atoi : 문자열을 integer 값으로 변환 합니다. (ascii to integer)
_atoi64 : 문자열을 __int64 값으로 변환 합니다.
atol : 문자열을 long 값으로 변환 합니다. (ascii to long)
atof : 문자열을 double 값으로 변환 합니다. (ascii to float)
무작정 atoi(아토이ㅋㅋ)로 외우는 것보다 "ASCii to integer, 아스키를 정수형으로" 같이 외우면 더 잘 기억납니다.
※함수 원형 및 설명
int atoi( const char *string ); //string : NULL로 종결되는 수식을 포함하는 문자열의 포인터 //반홥값 : 정수 값(int), 변환 실패시 0 리턴 // -2,147,483,648 ~ 2,147,483,647 __int64 _atoi64( const char *string ); //string : NULL로 종결되는 수식을 포함하는 문자열의 포인터 //반홥값 : 정수 값(__int64), 변환 실패시 0 리턴 // -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 long atol( const char *string ); //string : NULL로 종결되는 수식을 포함하는 문자열의 포인터 //반홥값 : 정수 값(long), 변환 실패시 0L 리턴 // -2,147,483,648 ~ 2,147,483,647 float atof( const char *string ); //string : NULL로 종결되는 수식을 포함하는 문자열의 포인터 //반홥값 : 실수 값(double), 변환 실패시 0.0 리턴 // 1.7E +⁄- 308 (15 digits)
※예제
-atoi, _atoi64, atol, atof
#include <stdio.h>
#include <stdlib.h>
int main( )
{
char *strInt = "123456789";
char *strInt64 = "1234567890123456789";
char *strLong = "123456789";
char *strDouble = "3.14e+100";
char *strStrInt = "value = 123456789";
int nInt;
__int64 nInt64;
long lLong;
double dDouble;
nInt = atoi( strInt );
printf( "%d\n", nInt );
nInt = atoi( strStrInt );
printf( "%d\n", nInt );
nInt = atoi( &strStrInt[8] );
printf( "%d\n", nInt );
nInt64 = _atoi64( strInt64 );
printf( "%I64d\n", nInt64 );
lLong = atol( strLong );
printf( "%ld\n", lLong );
dDouble = atof( strDouble );
printf( "%.2e\n", dDouble );
dDouble = atof( strInt );
printf( "%.2e\n", dDouble );
return 0;
}
'C > 문자열 함수' 카테고리의 다른 글
| [C언어] 문자가 숫자에 속하는지 검사하는 함수 - isdigit (0) | 2013.11.18 |
|---|---|
| [C언어] 숫자를 문자열로 변환 - itoa, ltoa, ultoa, fcvt, ecvt, gcvt (0) | 2013.11.05 |
| [C언어] 문자열 숫자로 변환 관련 함수 - strtol, strtoul, strtod (0) | 2013.11.02 |
| [C언어] 문자열 초기화 관련 함수 - strset, strnset (0) | 2013.10.28 |
| [C언어] 문자열 거꾸로 뒤집는 함수 - strrev (1) | 2013.10.27 |
| [C언어] 문자열 대소문자 변환 관련 함수 - strupr, strlwr (7) | 2013.10.26 |
| [C언어] 문자셋 검색 관련 함수 - strspn, strcspn (0) | 2013.10.25 |