c언어 공부 - 소수출력 프로그램, 대소문자 변환 프로그램
2022. 1. 26. 19:28ㆍC언어
728x90
소수를 출력하는 프로그램이다.
# include <stdio.h>
int main(void)
{
int i = 1, j, k;
int count = 0;
int n=0;
printf("입력하신 수 이하의 소수를 출력해주는 프로그램입니다.\n");
scanf("%d", &j);
while (j < 2)
{
printf("2이상의 정수를 입력해주세요\n");
scanf("%d", &j);
}
for (i = 2; i <= j; i++)
{
for (k = 1; k <= i; k++)
{
if (i % k == 0)
{
n += 1;
}
}
if (n == 2)
{
count++;
printf("%d\t", i);
if (count % 5 == 0)
{
printf("\n");
}
}
n = 0;
}
return 0;
}
이를 통해서 반복문,특히 n=0을 어디에 넣어야 하는 지 그리고 \t에 관해서도 알게되었다.
\t은 9칸만큼 건너띄는 것이 아니라 9칸마다 이미 지정되있다는 사실을 알았다.
아스키 코드를 이용하여 소문자는 대문자로 대문자는 소문자로 바꿔주는 프로그램을 짜보았다.
# include <stdio.h>
int main(void)
{
char str[100];
int i;
printf("영문을 소문자->대문자, 대문자->소문자로 바꾸는 프로그램입니다.\n");
printf("문장을 입력해주세요 : ");
gets(str);
for (i = 0; str[i] != '\0'; i++)
{
if ((str[i] >= 'A') && (str[i] <= 'Z'))
{
str[i] += ('a' - 'A');
}
else if ((str[i] >= 'a') && (str[i] <= 'z'))
{
str[i] -= ('a' - 'A');
}
}
printf("바뀐 문장 : ");
puts(str);
return 0;
}
gets를 사용한 것은 scanf함수는 띄어쓰기르 인식하지 못하기 때문이다.
대소문자변환으로 아스키코드를 이용했는데 아스키코드란 각 문자별로 할당된 숫자가 있는 것이다.
아스키코드에는 규칙들이 일정한 규칙이 있고 이를 이용해 대소문자를 변환한 것이다.
이번에는 함수를 이용하여 대소문자변환 프로그램을 짜보았다.
# include <stdio.h>
# include <ctype.h>
int main(void)
{
int i;
char str[100];
gets_s(str, sizeof(str));
for (i = 0; i < strlen(str); i++)
{
if (isupper)
{
str[i] = tolower(str[i]);
}
else if (islower(str[i]))
{
str[i] = toupper(str[i]);
}
}
puts(str);
return 0;
}
gets_s함수는 gets함수와는 다르게 인자가 하나 더 필요하다.
issupper등의 함수는 문자 하나를 대상으로 한다.
이상입니다.
728x90
'C언어' 카테고리의 다른 글
c언어 - 테트리스 만들기 초기 설정,4 블럭 낙하 (0) | 2022.02.12 |
---|---|
c언어-테트리스만들기3, 테트리스 블럭만들기, 다차원배열 (0) | 2022.02.09 |
c언어 -테트리스 만들기2 위치 지정하기, 키보드로 움직이기 (0) | 2022.01.28 |
c언어 - 테트리스 만들기1 - gotoxy함수 (0) | 2022.01.27 |
c언어 공부 - 거스름돈 프로그램, 계산기 프로그램, 숫자 확인 프로그램 (0) | 2022.01.27 |