C언어 문자 5개를 입력받아서 대문자인지 소문자인지 혹은 영문자가 아닌지 판별하는 프로그램 간단한 질문입니다.
조회수 764회
안녕하세요 문자 5개를 입력받아서 대문자인지 소문자인지 혹은 영문자가 아닌지 판별하는 프로그램을 짜는 중인데 일반문일때는 잘 실행이 되는데 for문으로 반복해주려 할땐 else 영문자가 아닙니다가 계속 같이 나오고 5번 실행도 안되는데 영문을 모르겠습니다.
int main() {
char c;
for (int i = 0; i < 5; i++) {
scanf_s("%c", &c);
if (c >= 'a' && c <= 'z') {
printf("소문자입니다\n");
}
else if (c >= 'A' && c <= 'Z') {
printf("대문자입니다.\n");
}
else {
printf("영문자가 아닙니다\n");
}
}
return 0;
1 답변
-
해결 방법은 scanf_s함수를 사용할 때
"%c"
를" %c"
와 같이 첫칸에 하나의 공백을 추가하고 사용하시면 됩니다.왜 이런 일이 발생하는지는 이전엔 답변했던 아래 글 읽어보세요.
https://hashcode.co.kr/questions/12755/
- 수정한 코드
#include <stdio.h> int main() { char c; for (int i = 0; i < 5; i++) { scanf_s(" %c", &c, 1); if (c >= 'a' && c <= 'z') printf("소문자입니다\n"); else if (c >= 'A' && c <= 'Z') printf("대문자입니다.\n"); else printf("영문자가 아닙니다\n"); } return 0; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력