반응형
atoi = Ascii to integer
atof = Ascii to float
atol = Ascii to long // 문자열 -> 숫자로 변환
ftoa = Float to ascii // ftoa() 함수는 없다.!!
ltoa = Long to ascii // 숫자 -> 문자열
atof = Ascii to float
atol = Ascii to long // 문자열 -> 숫자로 변환
#include <stdio.h>
int main()
{
int n;
double d;
char *a="1234567891";
char b[]="123456.78910";
n=atoi(a);
printf("%d\n", n);
d=atof(b);
printf("%f\n", d);
return 0;
}
itoa = Integer to ascii
ftoa = Float to ascii // ftoa() 함수는 없다.!!
ltoa = Long to ascii // 숫자 -> 문자열
#include <stdio.h>
int main()
{
int i=3910;
//double d=2913.1239;
char s[25];
itoa(i, s, 10); // iota(바꿀 대상, 바뀐뒤 저장할 대상, 변환할 진법)
printf("%s", s);
//ftoa(d, s, 10); // ftoa()함수는 없다!! OTL
//printf("\n%s", s);
return 0;
}
//직접 atoi() 함수를 만들었을 경우
#include <stdio.h>
int my_atoi(char *s);
int main()
{
char *a="28302";
int k=my_atoi(a);
printf("%d", k);
return 0;
}
int my_atoi(char *s)
{
int sum=0;
int dec=1;
int i=0;
for(i=strlen(s)-1; i>=0; i--)
{
sum+=(s[i]-'0')*dec; //'0'을 빼주는 이유는 아스키코드상에서의 숫자에서
dec*=10; //48을 빼줘야 10진수인 숫자값이 나온다. 따라서 48의 아스키 코드값이 '0'을 빼준다.
}
return sum;
}
//문자열 -> 숫자 변환
//stdtol(), stdtod()
#include <stdio.h>
#include <stdlib.h> //없으면 정상적으로 출력되지 않는다.
int main()
{
char *s1="-12.5e04";
char *s2="1100";
char *endptr;
double num1;
long num2;
num1=strtod(s1, &endptr);
num2=strtol(s2, &endptr, 10); // 2는 10진수로 바꿀 대상자가 2진수임을 알려줌
printf("문자열:%s, double형 숫자 : %lf\n", s1, num1);
printf("문자열:%s, long형 10진수 : %ld\n", s2, num2);
return 0;
}
// 숫자 -> 문자열로 바꾸기
#include <stdio.h>
#include <math.h>
void my_itoa(int n, char *st);
int main()
{
char s[10];
my_itoa(12345, s);
printf("%s\n", s);
return 0;
}
void my_itoa(int n, char *st)
{
int count, i;
count=(int)(log10(n)+1);
for(i=count-1; i>=0; i--)
{
st[i]=(n%10)+'0';
n=n/10;
}
st[count]='\0';
}
반응형
'System Programmings > C' 카테고리의 다른 글
[C] 문자열 비교 & 검색 (strcmp(), strncmp(), strstr(), strpbrk(), strspn(), strcspn()) (0) | 2010.08.07 |
---|---|
[C] 문자열 복사, 대체, 삽입 (strncpy(), mommove(), memcpy(), strcat(), strncat()) (0) | 2010.08.07 |
[C] 문자열 역순으로 바꿔저장하기 (한/영) (0) | 2010.08.06 |
[C] 문자열 역순으로 출력하기 (한/영 재귀함수 포함) (0) | 2010.08.06 |
[C] 대소문자 변환 tolower()과 toupper() (0) | 2010.08.06 |