#include <stdio.h>
int main()
{
char ch;
printf("문자를 입력하시오 : ");
scanf("%c",&ch);
if(ch>='a' && ch<='z') printf("소문자 입니다.\n\n");
else if(ch>='A' && ch<='Z') printf("대문자 입니다.\n\n");
else if(ch>='0' && ch<='9') printf("숫자 입니다.\n\n");
else if(ch!=10) printf("기타 문자입니다.\n\n");
}
이게 기본이 되는 형태인데
여기서 while이나 for문을 써서 무한루프를 하게 한 후 특정값을 입력하면 탈출하게 하는게 목표인데요,
#include <stdio.h>
int main()
{
char ch;
while(1)
{
printf("문자를 입력하시오 : ");
scanf("%c",&ch);
if(ch=='0') break;
else if(ch>='a' && ch<='z') printf("소문자 입니다.\n\n");
else if(ch>='A' && ch<='Z') printf("대문자 입니다.\n\n");
else if(ch>'0' && ch<='9') printf("숫자 입니다.\n\n");
else printf("기타 문자입니다.\n\n");
}
}
이걸 이렇게 해버리면 엔터까지 인식하는거 같더라구요
그래서 나름대로 머리를 굴려서
#include <stdio.h>
int main()
{
char ch;
while(1)
{
printf("문자를 입력하시오 : ");
b:
scanf("%s",&ch); // 여기서 %c를 %s로 바꿈
if(ch=='0') break;
else if(ch>='a' && ch<='z') printf("소문자 입니다.\n\n");
else if(ch>='A' && ch<='Z') printf("대문자 입니다.\n\n");
else if(ch>'0' && ch<='9') printf("숫자 입니다.\n\n");
else if(ch!=10) printf("기타 문자입니다.\n\n");
else if(ch==10) goto b;
}
}
이렇게까지 했는데,
두번째에서 3,엔터를 입력하면 3이 먼저 if문을 통과하고 다시 위로 올라와서 엔터가 if로 검색되더라구요
이게 %s로 3sdde1 이런식으로 입력하면 제일 앞에있는 문자로 if문이 도는거 같은데
어 머지 해결된거같다
#include <stdio.h>
int main()
{
char ch;
while(1)
{
printf("문자를 입력하시오 : ");
scanf("%s",&ch);
if(ch=='0') break;
else if(ch>='a' && ch<='z') printf("소문자 입니다.\n\n");
else if(ch>='A' && ch<='Z') printf("대문자 입니다.\n\n");
else if(ch>'0' && ch<='9') printf("숫자 입니다.\n\n");
else printf("기타 문자입니다.\n\n");
}
}
그냥 이렇게하니 되네요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ %s로하면 앞에것만 도니 엔터를 인식 안하네요
질문하다 문제푼적은 첨인듯 감사합니다
그래서 질문!
0이 아니라 999로 반복문을 빠져나가게 하려면 어떻게 해야하나요? 그냥 999로하니 숫자입니다만 떠버려서..
그리고 두번째 코드에서 왜 3엔터를 하면 3이 먼저 if를 빠져나가고 그뒤에 처음부터 다시 엔터로 도나요?
33엔터 하면 3, 3, 엔터 이렇게 세개가 각각 결과를 출력하더라구요