강의로 돌아가기
NECTAR

문자

만약에 문자를 입력했을때, 그 부분에서 '오류가 발생했습니다'를 출력하려면 어떻게 해야 되나요?

2 개의 답변
Demi

그 부분이라는 말이 정확히 이해되지 않습니다. 혹시 더 구체적인 예를 들어주실 수 있는지요?

  • NECTAR
    문자를 입력하였을때, 오류가 발생했습니다를 출력 하고 싶습니다. NECTAR 2019.03.14 19:27
Demi

숫자가 아니라, 문자를 입력했을때 오류가 발생했다는 문구를 출력하고 싶다는 말씀이시군요.
이때에는 입력을 %d(숫자)가 아니라 문자열 (%s)로 받은 후,
해당 입력값이 숫자인지 아닌지를 판독하는 코드를 짜야합니다.

그런데 배열을 배우지 않은 상태인 지금에는 이 코드를 짜기는 어려우실 것 같아요. 코드를 적어둘테니 나중에 이해해보세요.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(){
    char* answer = (char*)malloc(sizeof(char) * 100); // 100문자를 저장할 수 있는 배열 생성
    scanf("%s", answer); // 문자열을 입력받음

  // 입력받은 문자열이 숫자문자열인지 파악
    for(int i=0; i<strlen(answer); i++)
        if( !isdigit(answer[i]) ){
            printf("오류가 발생했습니다");
            break;
        }
}
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.