Blog/JAVA기반 스마트웹 개발2021

프로그래밍 언어 활용 part 2 - 변환·랜덤 라이브러리

고구마달랭이 2021. 8. 10. 17:53

변환·랜덤 라이브러리

학습내용 학습목표
▪ 변환 라이브러리
▪ 랜덤함수
▪ 문자열을 숫자로 변환하는 라이브러리 사용법을 구현할 수 있다.
▪ 랜덤함수를 이용하여 랜덤값이 필요한 작업에 적용할 수 있다.

변환 라이브러리

 

1. 데이터 변환

☞ atoi 문자열을 정수(int)로 변환

☞ atof 문자열을 실수(double)로 변환

☞ strtof 실수 문자열을 float형 실수로 변환

☞ strtod 실수 문자열을 double형 실수로 변환

#include <stdio.h>
#include <stdlib.h>

int main( void)
{
   printf( “%s = %d\n", “2020” , atoi( “2020” ));
   printf( “%s = %d\n", “2020Happy new year ”, atoi( “2020Happy new year”));
   printf( “%s = %d\n", “Happy new year 2020”, atoi( “Happy new year2020”));
   printf( “%s = %d\n", “ 2020” , atoi( “2020” ));
   printf( “%s = %d\n", “.,2020” , atoi( “.,2020” ));
   printf( “%s = %d\n", “#$2020” , atoi( “#$2020” ));
   printf( “%s = %d\n", “2020.123” , atoi( “2020.123” ));
   
   return 0;
}

 

 

2. 활용 예제

[1] 기능

▪ 근무일 입력 시 급여 계산

 

[2] 요구사항

☞ 급여 계산식 : 급여 = 근무일 * (근무연수 * 1000)

☞ 사원번호에서 입사연도를 자동으로 추출하여 급여 계산

☞ 사원번호체계: 총10자리입사연도+ 일련번호-부서코드 (예20080123-02)

 

 


랜덤함수


1. 랜덤값 발생

☞ 데이터를 입력하지 않고 넘어가는 경우를 검사

 

 

 

2. 활용 예제

[1] 기능

▪ 학번에 따라 3개의 그룹으로 분류

 

[2] 요구사항

☞ 10명의 학생을 학번에 따라 랜덤하게 3개의 그룹으로 분류

☞ 학번을 시드로 랜덤하게 생성하기

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void)
{

   int i,
   
	std[10]={2017011,2017015.2017023,2017034,2017041,2018002,2018052,2018154,2018217,2018328};

   for ( i = 0; i < 10; i++)
   {
	 srand (std[i]);
	 printf( “%d 번 은 그룹 %d\n”, i+1, rand() % 3 +1);
   }

 return 0;
}

 

 


 

 

학습정리

 

1. 변환 라이브러리

▪ 숫자 형태의 문자열을 변환하는 라이브러리 함수는 stdlib.h 헤더파일에 선언되어 있음

숫자 형태의 문자열을 정수형으로 변환하는 함수 : atoi

숫자 형태의 문자열을 실수형으로 변환하는 함수 : atof

 

2. 랜덤함수

▪ 랜덤값을 생성하는 라이브러리 함수 : rand

▪ rand함수는 실행 시 동일한 랜덤값을 생성하므로 시드함수를 이용해야 함

▪ rand함수 사용 시 시드함수로 srand가 있음