컴퓨터/C
문자열에서의 숫자는 숫자의 형태를 문자로 표현을 한 것입니다. 따라서 숫자로서의 기능이 아닌 문자로서의 기능만을 할 수 있습니다. (연산을 할 수 없습니다.)
char char_num[5] = "111" // 111의 값이 아닌 '1','1','1'인 문자열 입니다.
int num = 111 // 졍수형 숫자 111
일단 문자열안에 있는 숫자를 하나씩 빼낸 후 숫자의 형태로 바꿔주면 프로그램 안에서 숫자의 형태로 바꿔줄 수 있습니다. 이렇게 된다면 계산이 가능해질 것입니다.
구현을 하기위해 간단하게 생각해보면 다음 같은 전제조건이 필요할 것입니다.
이런 형태의 구현을 C언에서는 함수의 형태로 제공해 줍니다.
C언어에서 문자열의 숫자들을 숫자의 형태로 바꾸기 위해서 제공되는 함수입니다.
stdlib.h에 포함되어 제공되는 함수입니다.
#include<stdlib.h>
int atoi(const char*nptr) // 문자열 --> int형 정수로 변환
long int atol(const char*nptr) // --> long int
long long int atoll(const char*nptr) // long long int
double atof(const char*nptr) // double
#include<stdio.h>
#include<stdlib.h>
int main()
{
char str1[] = "125"; // 문자열에 저장된 숫자
printf("str1에 atoi 함수 사용 값 : %d \n", atoi(str1)); // int형으로 변환
printf("str1에 atoi 함수 사용 값 : %f \n", atof(str1)); // double형으로 변환
char str2[] = "3.1415920";
printf("str2에 atoi 함수 사용 값 : %d \n", atoi(str2)); // int형으로 변환
printf("str2에 atoi 함수 사용 값 : %f \n", atof(str2)); // double형으로 변환
char str3[] = "문자열 숫자 3.1415920";
printf("str3에 atoi 함수 사용 값 : %d \n", atoi(str3)); // int형으로 변환
printf("str3에 atoi 함수 사용 값 : %f \n", atof(str3)); // double형으로 변환
return 0;
}
위와 같은 결과로 다음 함수들을 사용 시 주의사항을 유추해 볼 수 있습니다.
이런 C언어에서 제공되는 함수를 이용하면 손쉽게 문자열 안에 데이터를 숫자로 변경할수 있습니다.
C 언어 - 실습 - 학생관리 프로그램Ver1(기초 지식 이용) (0) | 2021.07.11 |
---|---|
C 언어 - void 키워드 (0) | 2021.07.10 |
C 언어 - 동적 메모리 할당 - malloc 함수 (0) | 2021.07.06 |
C 언어 - 동적메모리의 개념 (0) | 2021.07.02 |
C 언어 - 쓰래기값과 초기화 (0) | 2021.06.30 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet