728x90
7.3 ctype.h 문자 함수들
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
main()
{
char ch;
while ((ch = getchar()) != '\n') {
if (islower(ch)) // 소문자인가
ch = toupper(ch); // 소문자 -> 대문자
else if (isupper(ch)) // 대문자인가
ch = tolower(ch); // 대문자 -> 소문자
else if (isdigit(ch) != 0) // 숫자인가
ch = '*';
putchar(ch);
}
putchar(ch); // ch에 남아있는 '\n' 출력
return 0;
}
Output:
(1234abcdABCD 입력)
****ABCDabcd
- Control character or Non-graphic/Non - printable character : 콘솔/터미널 화면이나 장치 제어등을 위한 문자. 출력이 불가능하다. ASCII Code 0~31
- Graphic/Printable character : Control Character를 제외한 숫자, 문자, 특수문자로, 정보를 표현하는 문자들. Graphic character 2개를 묶어 한글의 한 글자를 표현하므로 윈도우 환경과 한글 환경에선 보이지 않는다.
- Punctuation character : Graphical characters중 "# @ # % ^ & " 등의 숫자, 문자를 제외한 기호들
7.4 다중 선택 else if
- else if문을 사용하여 여러 조건들 나열 가능
예제)
- 수익을 입력받고 위와 같은 과세 기준을 토대로 입력값에 따른 세금과 과세 계산 후 값 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define BASE1 12000000.0
#define BASE2 46000000.0
#define BASE3 88000000.0
#define BASE4 150000000.0
#define BASE5 300000000.0
#define BASE6 500000000.0
#define RATE1 (6.0/100.0)
#define RATE2 (15.0/100.0)
#define RATE3 (24.0/100.0)
#define RATE4 (35.0/100.0)
#define RATE5 (38.0/100.0)
#define RATE6 (40.0/100.0)
#define RATE7 (42.0/100.0) // 비교값들이 많을 때는 위처럼 메크로 함수를 이용하여 값을 미리 설정
#define BASIC_DEDUCTION 1500000.0 // default tax
int main()
{
double income, tax = 0.0;
printf("Enter the income : ");
scanf("%lf", &income);
income -= BASIC_DEDUCTION;
if (income <= BASE1)
tax = income * RATE1;
else if (income <= BASE2)
tax = BASE1 * RATE1 + (income - BASE1) * RATE2;
else if (income <= BASE3)
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (income - BASE2) * RATE3;
else if (income <= BASE4)
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (income - BASE3) * RATE4;
else if (income <= BASE5)
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (income - BASE4) * RATE5;
else if (income <= BASE6)
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (BASE5 - BASE4) * RATE5 + (income - BASE5) * RATE6;
else
tax = BASE1 * RATE1 + (BASE2 - BASE1) * RATE2 + (BASE3 - BASE2) * RATE3 + (BASE4 - BASE3) * RATE4 + (BASE5 - BASE4) * RATE5 + (BASE6 - BASE5) * RATE6 + (income - BASE6) * RATE7;
printf("Tax is %lf\n", tax);
printf("Your income after tax deduction : %lf\n\n", income - tax);
return 0;
}
Output :
Enter the income : (28000000 입력)
Tax is 2895000.000000
Your income after tax deduction : 23605000.000000
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 7.7 논리 연산자 Logical operators (0) | 2022.01.24 |
---|---|
[홍정모의 따라하며 배우는 C언어] 7.5 else와 if 짝짓기 ~ 7.6 소수 판단 예제 (0) | 2021.12.31 |
[홍정모의 따라하며 배우는 C언어] 7.1 분기문 if ~ 7.2 표준 입출력 함수들 getchar(), putchar() 예제 (0) | 2021.11.28 |
[홍정모의 따라하며 배우는 C언어] 6.18 루프 안에서 함수의 반환값 사용하기 (0) | 2021.10.14 |
[홍정모의 따라하며 배우는 C언어] 6.17 for 루프를 배열과 함께 사용하기 (0) | 2021.10.11 |