본문 바로가기

C 언어/연습문제

(46)
C언어 연습문제38 [문제] 문자열 2개를 입력 받아서 두 문자열을 비교하여 동일한지, 동일하지 않은지 메시지를 띄우고 동일하지 않다면 앞에 세 글자만 판단하여 동일하면 메시지를 띄우는 프로그램을 작성하라. [실행결과] 문자열 입력 1: simple 문자열 입력 2: simon 두 문자열은 동일하지 않습니다. 그러나 앞 세 글자는 동일합니다. [코드] #include int main(void) { char str1[30]; char str2[30]; printf("문자열 입력 1: "); fgets(str1, sizeof(str1), stdin); printf("문자열 입력 2: "); fgets(str2, sizeof(str1), stdin); if (!strcmp(str1, str2)) puts("두 문자열은 완벽히 동..
C언어 연습문제37 [문제] 아래의 코드에서 엔터를 지우는 함수 RemoveBSN를 strlen 함수를 사용하여 완성하라. #include void RemoveBSN(char* str); int main(void) { char str[100]; printf("문자열 입력: "); fgets(str, sizeof(str), stdin); printf("길이: %d, 내용: %s \n", strlen(str), str); RemoveBSN(str); printf("길이: %d, 내용: %s \n", strlen(str), str); return 0; } void RemoveBSN(char* str) { } [실행결과] 문자열 입력: hello 길이: 6, 내용: hello 길이: 5, 내용: hello [코드] #include..
C언어 연습문제36 [문제] 야구 게임을 컴퓨터와 할 수 있도록 프로그램을 작성해보자. 게임의 방식은 다음과 같다. 컴퓨터는 0에서 9사이의 숫자 중에서 서로 다른 세 개의 숫자를 고르고, 사용자는 이것을 맞춰야 한다. 중요한 것은 숫자의 순서까지 정확히 맞춰야 한다는 것이다. 단 사용자가 예상한 숫자를 입력할 때마다 컴퓨터는 입력된 숫자와 컴퓨터 자신이 생각한 숫자가 얼마나 비슷한지를 알려줘야 한다. 예를 들어서 컴퓨터가 고른 숫자가 1 4 9이고, 사용자가 입력한 숫자가 4 0 9이면, 두 개의 숫자 4와 9가 일치한다. 9는 숫자와 위치까지 일치하지만(1 strike), 4는 숫자만 일치한다(1 ball). 이런 경우 컴퓨터는 다음과 같은 메시지를 출력해 준다. 1strike, 1ball 만약에 사용자가 1 4 9를 ..
C언어 연습문제35 [문제] fputs, fgets 함수를 이용하여 주민번호와 이름을 입력 받아 출력하는 프로그램을 작성하라. 주민번호는 전체 번호를 적어도 앞 6자리만 출력되어야 한다. [실행결과] 주민번호 앞 6자리 입력: 123123-1234567 이름 입력: 홍길동 주민번호: 123123 이름: 홍길동 [코드] #include void clearBuffer(void) { while (getchar() != '\n'); } int main(void) { char perID[7]; char name[10]; printf("주민번호 앞 6자리 입력: "); fgets(perID, sizeof(perID), stdin); clearBuffer(); printf("이름 입력: "); fgets(name, sizeof(name..
C언어 연습문제34 [문제] puts, fputs 함수를 사용하여 문자를 출력해보자. str이라는 변수를 선언하고 "Simple String"을 저장한 뒤 puts, fputs 함수로 각각 출력하고 변수를 선언하지 않고 "So Simple String"을 puts, fputs 함수로 각각 출력하자. 지금까지의 과정에서 차이를 설명하고 아래와 같이 출력결과가 나오도록 코드를 수정해보자. [실행결과] Simple String Simple String So Simple String So Simple String [코드] #include int main(void) { char* str = "Simple String"; puts(str); // 자동적으로 개행이 된다. fputs(str, stdout); // 자동적으로 개행이 되지..
C언어 연습문제33 [문제] 프로그램 사용자로부터 알파벳 문자를 하나 입력 받아서, 입력 받은 문자가 대문자이면 이를 소문자로 변환해서 출력해주고, 입력 받은 문자가 소문자이면 이를 대문자로 변환해서 출력해주는 프로그램을 작성해보자. 단, 문자의 입출력에는 getchar 함수와 putchar 함수를 사용하기로 하자. 그리고 프로그램 사용자가 알파벳 이외의 문자를 입력하는 경우에는 그에 따른 오류 메시지를 간단히 출력하기로 하자. 조건1) ConvCase 함수를 만들어 사용할 것 조건2) 아스키 코드를 변환하는 부분을 최대한 단순하게 만들 것 [실행결과] 문자입력: a A 문자입력: 6 잘못된 입력입니다. [코드] #include int ConvCase(int ch) { int diff = 'a' - 'A'; if (ch >..
C언어 연습문제32 [문제] getchar, putchar 함수를 사용하여 문자를 입력 받아 바로 출력하는 프로그램을 작성하라. 단, 프로그램의 종료는 Ctrl+Z를 사용한다. 추가적으로 위의 프로그램을 fgetc, fputc 함수를 사용하여 같은 기능의 프로그램을 작성하라. [실행결과] Hi Hi Welcome to C World Welcome to C World ^Z [코드1] #include int main(void) { int ch; while (1) { ch = getchar(); if (ch == EOF) break; putchar(ch); } return 0; } [코드2] #include int main(void) { int ch; while (1) { ch = fgetc(stdin); if (ch == EO..
C언어 연습문제31 [문제] 가위 바위 보 게임을 만들어 보자. 사용자로부터 가위 바위 보 중에서 하나를 입력 받는다. 그리고 컴퓨터는 난수 생성을 통해서 가위 바위 보 중에서 하나를 선택하게 한다. 이 둘을 비교해서 승자와 패자를 가려주는 프로그램을 작성해 보자. 단 프로그램의 진행은 사용자가 질 때까지 계속되어야 하고, 마지막에 가서는 게임의 결과(예: 4승 3무)까지 출력해 주도록 하자. [실행결과] 바위는 1, 가위는 2, 보는 3: 2 당신은 가위 선택, 컴퓨터는 가위 선택, 비겼습니다! 바위는 1, 가위는 2, 보는 3: 1 당신은 바위 선택, 컴퓨터는 바위 선택, 비겼습니다! 바위는 1, 가위는 2, 보는 3: 3 당신은 보 선택, 컴퓨터는 바위 선택, 이겼습니다! 바위는 1, 가위는 2, 보는 3: 3 당신은..