Information Security

PART3 C 프로그래밍 레디 고! 051-056 본문

C언어 300제/PART 3

PART3 C 프로그래밍 레디 고! 051-056

leeeeye321 2017. 4. 7. 19:47

051 문자 입력받기(getch)

2: getch() 함수가 선언되어 있는 헤더 파일(conio.h)을 include(포함) 한다.

-함수의 원형: int getch(void);

4: 키보드의 Enter 키 값은 아스키코드가 13이다. 상수로 선언한다.

13: getch() 함수는 키보드로부터 문자 한 개를 입력받아서 int형으로 반환한다.

또 getch() 함수는 숫자, 대/소문자 외에 F1~F12, Ctrl+a~Ctrl+z, Home, End, PgUp, PgDn, 방향 등의 특별한 값들도 입력받는다. 특별한 값을 입력받은 경우 getch() 함수는 두 번에 걸쳐 키 값을 읽어온다. 첫 번째 getch() 함수 호출 시에는 아스키코드 값 0이 읽히고, 두 번째 호출 시에는 키 값에 맞는 아스키 코드가 읽힌다.

15: 키보드로 Enter을 입력하면 getch() 함수는 13을 반환하여 ch에 저장되고,  상수 ENTER의 값도 13으로 정의했기 때문에 while 조건문이 거짓이 되므로 루프를 빠져나온다.

 

052 문자 출력하기(putch)

2: putch() 함수가 선언되어 있는 헤더 파일(conio.h)을 포함한다.

-함수의 원형: int putch(int ch);

6: print() 함수를 호출한다. 문자형 포인터 변수 string이 문자열 "This is a putch function!"을 전달받는다.

11: putch() 함수는 한 개의 문자를 출력할 때 사용한다. string이 가리키는 번지 값이 NULL이 될 때까지 문자를 출력한다.

 

053 정수값 입력받기(scanf)

<기본 사용 형식>

scanf("형식문자열", &변수명);

1: scanf() 함수가 선언되어 있는 헤더 파일(stdio.h)을 포함한다.

-함수의 원형: int scanf(const char *format[argument]...);

12: 키보드로부터 정수값을 하나 입력받는다. 입력 후 반드시 Enter 키를 눌러야 한다. 입력된 값은 tmp에 저장된다.

 

※ 문자열 입력하기

-scanf() 함수에서 문자열을 입력할 때는 형식 문자열 '%s'를 사용한다.

 

-문자열 여러 개를 입력하고 싶을 때는 하나 이상의 '%s'를 사용하면 된다.

 

 -문자열의 길이를 지정한다. 이 경우에는 입력받은 문자열을 3개의 변수에 3문자 씩 저장한다.

 

054 정수값 출력하기(printf)

1: printf() 함수가 선언되어 있는 헤더 파일(stdio.h)을 포함한다.

-함수의 원형: int printf(const char *format[argument]...);

※ const 키워드를 지정하면 값을 변경할 수 없는 변수가 된다. 

12, 13, 14: 정수값 출력 시 자릿수가 최소 5자리가 되도록 설정하며, 모든 값이 숫자이기 때문에 자동으로 오른쪽 정렬이 된다.

16, 17, 18: 정수값 출력 시 자리수가 최소 10자리가 되도록 설정하며, 모든 값이 숫자이기 때문에 자동으로 오른쪽 정렬이 된다.

20, 21, 22: 정수값 출력 시 자릿수가 최소 10자리가 되도록 설정하며, '-'를 사용했기 때문에 왼쪽 정렬이 된다.

 

055 문자열 입력받기(gets)

1: gets() 함수가 선언되어 있는 헤더 파일(stdio.h)을 포함한다.

-함수의 원형: char* gets(char* buffer);

5: 문자열을 입력받고 저장하기 위한 문자열 버퍼를 정의한다.

6: gets() 함수의 반환값을 저장할 문자형 포인터 변수를 정의한다.

8: 한 줄의 문자열을 입력받는다. gets() 함수는 반환값으로 문자형 포인터(번지)를 돌려준다.

10: gets() 함수 실행 시 문제가 발생하였다면, ret 값은 NULL이 된다. 그렇지 않다면 ret은 string 배열의 첫 번째 번지 값을 가진다.

20: str이 가리키는 번지의 값이 'a'라면 cnt의 값은 1 증가한다.

22: 입력받은 문자열에 'a'가 몇 개 들어있는지를 저장한 cnt 값을 반환한다.

 

056 문자열 출력하기(puts)

 

1: puts() 함수가 선언되어 있는 헤더 파일(stdio.h)을 포함한다.

-함수의 원형: int puts(const char* string);

-인수로 넘겨주는 문자열은 puts() 함수 내부적으로 문자열 상수(constant)처럼 사용되기 때문에 puts() 함수 실행 후에도 변하지 않는다.

-위의 코드에서 정의한 문자열 상수 KOREA, SUMMER, WINTER 모두 변경하려고 하면 에러가 발생한다.