C언어 코드 도와주실 수 있으신가요?
#include<stdio.h>
#define CRTSECURENOWARNINGS
int main(void)
{
char n1, n2;
do
{
printf("임의의 문자를 하나만 입력하세요: ");
scanf("%c", &n1);
if (n1 >= 'A' && n1 <= 'Z')
n2 = n1 + 32;
else if (n1 >= 'a' && n1 <= 'z')
continue;
printf("입력하신 문자 '%c'는 영문 대문자 이며 변환하면 '%c'입니다.", n1, n2);
if (n1 == 'Q')
break;
} while (1);
return 0;
}
소문자랑 대문자를 입력했을 때 변환하는 코드를 짜고 싶은데요 조건은 Q를 입력하면 중단되는 것입니다.
그런데 문제가 있습니다.. Q를 입력하면 잘 되는데 Q를 제외한 다른 문자를 입력하면 출력되는 문장이 사진처럼 2번 반복되서 나와요 ㅠㅠ 어떻게 해결해야 하나요? 그리고 n2의 초기값을 설정하라는데 n2 = 0이라고 하면 될까요?
아래 처럼 해보세요.
%c를 받을 때, " %c"로 공백을 하나 줘야합니다.
#include<stdio.h>
int main(void)
{
char n1, n2;
do
{
printf("임의의 문자를 하나만 입력하세요: ");
scanf(" %c", &n1);
if (n1 >= 'A' && n1 <= 'Z')
n2 = n1 + 32;
else if (n1 >= 'a' && n1 <= 'z')
continue;
printf("입력하신 문자 '%c'는 영문 대문자 이며 변환하면 '%c'입니다.\n", n1, n2);
if (n1 == 'Q')
break;
} while (1);
return 0;
}
소스코드 파일 다운로드 : https://github.com/sigmak/exercise4_01/tree/2021-10-13-C-convertTest
1. 소스코드
2. 컴파일 후 실행결과 캡쳐