반응형

【 C 언어 】 #53 puts() 사용하여 문자열 출력하기



 문자열 전용 출력 함수인 puts()에 대해 다루어 보고, 역시 문자열 출력이 가능한 printf()와의 차이점에 대해서도 설명하려 한다. 


▶ 문제 1 

 "봄", "여름", "가을", "겨울" 각각의 단어를 define문으로 정의 하고ㅔputs() 함수를 사용하여 화면에 출력 하시오.  (SPRING, SUMMER, AUTUMN, WINTER)

또한 여름을 summer,  가을을 autumn 으로 문자열 상수(const char*) 로 선언하여 함께 출력해보라.


▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)

▶ 포인트 

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

- #define SPRING "봄"  ,  #define SUMMER "여름" ,  ....


▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)



▶ 코드 설명 :  

- const char* summer = "여름";  으로 정의 하여 사용하게 되면 프로그램 내에서는 변경이 불가 하다. 

- const char* autumn = AUTUMN;     처럼 기존 #define 문으로 정의 된 AUTUMN을 대입 선언할 수 도 있다.




----------------------------------------------------------------------------------------------------------


▶ 문제 2 

 위 프로그래밍 내용에서 printf() 문을 추가 사용하여 "봄", "여름", "가을", "겨울" 을 각각 출력하시오.  puts(), 와 printf()문의 차이를 확인하시오.


▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)



▶ 포인트 


[ puts() 함수와 printf() 함수와의 차이 ]


puts() 함수는 캐리지 리턴 이라고 하는 개행 문자('\n') , 즉 줄바꿈 명령어가 자동으로 기능한다.  이에 반해 printf()는 줄바꿈을 하려면 개행문자가 필요하다

- puts()는 문자열만 출력 가능하지만,  printf()는 문자열 뿐 아니라, %d, %f, %c, %s 등 정수, 실수, 문자, 문자열 등 다양한 출력이 가능하다)

- 따라서 printf()는 puts() 보다 리소스 자원을 많이 차지 하게 되고, 프로그램 실행속도에도 영향을 미치게 된다.  그러므로 필요한경우 puts()와 printf()를 적절히 구분해서 사용하면 된다. 



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


문제 1,2 :  

52 puts() 사용하여 문자열 출력하기.cpp


반응형

【 C 언어 】 #52 gets() 사용하기

카테고리 없음 2018. 5. 23. 10:32 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #52 gets() 사용하기



 문자열을 입력 받아 버퍼에 저장하는 gets() 함수를 사용해 보도록 하자.


▶ 문제  

 gets() 함수를 사용하여 키보드로 부터 아래와 같은 문자열을 입력받은 후, 문자열 중 't' 의 개수를 카운트하여 나타내시오.

  (문자열 : "My birthday is twenty fourths of January" )



▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)




▶ 포인트 


- gets() 함수를 사용하기 위해서는 stdio.h 헤더를 포함시켜야 한다.

- 문자열은 99개 까지만 입력받을 수 있고, 초과입력하면 오류가 발생한다.

- 입력 받은 문자열은 배열을 선언하여 저장하라 (ex, string[100] )

- 문자열 중 특정 문자('t')의 개수를 카운트 하는 루틴을 서브루틴으로 작성하라



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


52 gets() 사용하기.cpp



반응형

【 C 언어 】 #51 printf() 사용하여 문자열 출력하기

Language/C & C++ 2018. 5. 18. 10:44 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #50 printf() 사용하기



 printf()으로 큰 따옴표를 사용하여( ".... " ) 내용을 출력할 수 있지만. 문자열 변환 문자인 %s를 사용하여 출력할 수 있다. 이에 대해 좀더 살펴보자.


▶ 문제  

 1. "My birthday is twenty fourths of January"를 기본 printf()문으로 출력한다

 2. "My birthday is" , "January" , "twenty fourths" 를 문자열 변수로 각각 선언하고 printf()문에서 %s 를 사용하여 1번과 같은 문장이 되도록 출력한다. 



▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)



▶ 포인트 


- 문자열 변수 선언 :  char *text = "My birthday"



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


51 printf()로 문자열 출력하기.cpp



반응형

【 C 언어 】 #50 printf() 사용하기

Language/C & C++ 2018. 5. 18. 09:54 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #50 printf() 사용하기



 C 프로그래밍을 할 때 데이터를 모니터 화면 출력을 위해 가장 많이 쓰는 함수가 printf()이다. 이번 시간에는 printf()의 좀더 다양한 표현 방법을 배워 보도록 하겠다. 


▶ 문제  : 먼저 a= 123, b=1234, c=12345 를 int로 d=123.45를 float로 선언한다. 


 1.  a,b,c를 정렬없이 printf()문으로 기본 출력. 

 2.  a,b,c를 5자리로 고정 출력.

 3.  a,b,c를 7자리로 좌측 정렬 출력.

 4.  a,b,c 를 한번에(하나의 printf()문으로) 출력

 5. a,b,c,d를 %f를 사용하여 실수 형태로 출력 (%7.2f 등등)


▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)




▶ 포인트 


%d는 별다른 옵션 없이 출력하면 우측으로 자동정렬된다

- %7d 와 같이 자리수를 지정할 수 있다

- %7.2f 처럼 실수 타입의 소숫점 및 전체 자리수를 지정할 수 있다

- 실수값을 정수형 %d 로 잘못 출력할 경우 임의의 쓰레기(garbage) 값이 들어간다



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


50 printf() 사용하기.cpp



반응형

【 C 언어 】 #49 특수 문자 & 서식문자 출력하기

Language/C & C++ 2018. 5. 17. 16:07 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #

49 특수 문자 & 서식문자 출력하기

 

 

 명령어로 사용되는 특수 문자들은 그 대로 사용할 수 없기 때문에 출력 형식이 있고, 경고음이나 탭등을 출력 하기 위한 방법을 익히며, 정수형, 실수형 등 타입에 따른 서식을 위한 문자에 대해 이해해보자.

 

▶ 문제  : 아래 내용들을 printf() 문을 이용하여 출력하라. 

 

 

[ 서식 문자 출력 하기 ] 

 

※ 32bit 운영체제 에서는 long long 타입과 같은 8byte(64bit)도 모두 4byte(32bit)로 처리 된다

 

▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)

 

 

▶ 포인트 

 

- 명령어가 아닌 문자 그대로 인 '\ a'를 표시하기 위해서는 '\\a' 라고 하여야 한다.

- 소숫점 이하의 수가 끊임 없이 나오는 실수를 정수 처럼 메모리 사용을 하게 되면 문제가 생기므로 고정소숫점이 아닌 부동소숫점으로 처리를 한다.   

 (예, 고정 소숫점으로 4byte를 표현 할 수 있는 최대 수는 32767.00000 밖에 되지 않는다   , 고정 소숫점 표시 방식 : 0.0123  ,같은 값으로  부동소숫점 표시 방식 : 1.23e-3  )  e-3 은 10의 -3승을 의미

- % g는 자리수 표시 한께치가 넘지 않을 때는 % f로 자리수가 늘어나서 넘칠 때는 자동으로 e 타입으로 표시해준다 

 

 

▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)

- [ 특수 문자 출력 하기 부분 ]

 

- [ 서식 문자 출력 하기 부분 ]

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

 

▶ 소스코드 다운로드 :  

 

49 특수문자 서식문자 출력하기.cpp
다운로드

 

 

반응형

【 C 언어 】 #48 문자 출력하기 (putch)

Language/C & C++ 2018. 5. 17. 10:16 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #48 문자 출력하기 (putch)



 한 개의 문자를 입력 받을 때는 getch()를 사용하고, 한 개의 문자를 출력하려면 putch()를 사용한다.


▶ 문제  : 문자열 출력을 위한 print()를 함수로 만들면서 putch()함수를 사용하여 아래 문자열을 출력해보라. 

 출력 문장 ("The AI world is coming!")

 출력에 성공한다면 printf()문을 이용해 위 문자의 수를 카운트 하여 표시하라.



▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)



▶ 포인트 

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

- putch() 함수는 출력장치로 문자 하나를 출력 한다.

- print() 는 정의 되어 있지 않은 사용자 정의 함수로 만드는 것이다. 

  ('stdio.h' 헤더에 정의 되어 있는 printf() 함수와 구분할 것)



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


48 문자 출력하기( putch() ).cpp




반응형

【 C 언어 】 #47 문자 입력 받기 (getch)

Language/C & C++ 2018. 5. 16. 13:39 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #47 문자 입력 받기 (getch)



 앞선 프로그램 문제에서 #include 문을 다루면서 getch()를 사용해 보았다.

getch()에 대해 좀더 상세하게 다루어 보자.


▶ 문제  : 키보드로 부터 한 개의 문자를 입력받아 아스키 코드 값을 출력하는 프로그램을 getch() 사용하여 작성하시오.


▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)




▶ 포인트 


- Enter의 아스키 값은 '13' 이다. 

- getch() 함수는 키보드로 부터 문자 하나를 입력받아 int 형으로 반환한다.

- 하나의 문자만을 출력 하려면 putch() 함수를 이용하면 된다. 




▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


47 문자 입력받기( getch() ).cpp


반응형

【 C 언어 】#46 매크로 (macro) 이해하기

Language/C & C++ 2018. 5. 15. 10:39 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #46 매크로 (macro) 이해하기



 매크로란? 자주 사용하는 여러개의 명령어를 묶어 하나의 새로운 명령어로 만드는 방법을 말한다.  따라서, 매크로를 이용하여 함수를 사용하지 않고도 간단한 함수의 기능을 이용할 수 있다.  #define 문을 이용하며, 주로 번잡한 문장을 단순화하기 위해 사용한다.


▶ 문제  : 매크로를 정의하여 두 수의 최대값(MAX) 과 최소값(MIM) 값을 화면에 출력 하시오.


▶ 실행 결과 :

(이미지 클릭, 확대해서 보세요)




▶ 포인트 


- C언어에서 3항 연산자를 이용해서 macro 기능을 사용해본다.

- 3항연산자  A ? B : C    → A가 참이면 B,  거짓이면 C  




▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)




▶ 프로그램 설명 


- a > b ? a : b →   a가 b보다 크면(참이면)   a 값,  아니면 b값
- a < b ? a : b →   a가 b보다 작으면(참이면) a 값,  아니면 b값

- Max(a,b)  라고 선언할 경우 a,b 는 본문에서 사용되는 변수의 인수(인자) 역할을 한다.  


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


▶ 소스코드 다운로드 :  


46 macro 이해하기.cpp


반응형
반응형

【 C 언어 】 #45 <#include 문>으로 헤더파일을 선언해보자



 프로그램을 작성하다 보면 화면으로 출력해주는 'printf' 문과 같은 내장함수 들을 사용하게 된다. 이러한 함수들은 <stdio.h> 라는 기본 입출력에 해당하는 헤더 파일에 정의 되어 있고 이를 이용하기 위해서는 #include문으로 선언을 해주어야 한다.  만약 그렇지 않고 자신이 직접 모든 모듈을 다 작성하게 되면 시간이 많이 걸릴 것이며 프로그램의 효율성이 떨어지게 된다. 


▶ 문제  : 키보드로 문자 하나를 입력 받는 프로그램을 작성하되, 키보드로 부터 문자를 입력받을 수 있는 getch() 함수를 이용하라. getch()함수는 채conio.h 헤더 파일에 포함되어 있으며 #include문으로 선언해주면 프로그램내에서 사용이 가능하다. 


▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)




▶ 포인트 


- printf(), scanf(), getch() 함수 등을 사용하기 위해서는 함수내용이 포함된 헤더파일을 선언해야 프로그램내에서 사용이 가능하다.


- <stdio.h> : printf(), scanf()과 같은 입출력과 관련된 가장 기본이되는 함수의 집합인 헤더파일


- <conio.h> : 키보드와 같은 콘솔 입출력 장치와 관련된 함수들을 모아 놓은 헤더파일.

 [ 관련 함수 소개 ]

  → kbhit     : 키보드가 눌렸는지 확인

  → getch    : 콘솔에서 키보드 입력으로 한 개의 키 입력을 받음, (echo 없음)

  → getche   : 콘솔에서 키보드 입력으로 한 개의 키 입력을 받음, (echo 있음:타이핑한 키가 화면에 표시 됨)

  → putch     : 콘솔에 문자 하나를 출력  ( putchar 와 같음)

  → cputs    :  콘솔에 문자열을 출력

  → cprintf   :  포맷을 사용해서 콘손에 문자열을 출력

  → ungetch : 키보드 버퍼로 문자 한 개를 넣음

  → cgets     :  콘솔로 부터 문자열을 직접 입력 받음

  → gscanf   :  콘솔로 부터 포맷팅 된 입력을 받음


- #include <파일명>   & #include "파일명"  의 차이점  

  1. #include <파일명> : C의 표준 라이브러리 및 본래의 설치된 경로를 사용함을 의미

  2. #include "파일명"  : 사용자 정의 헤더파일을 먼저 검색후(컴파일 되고 있는 파일 위치) 표준라이브러리(본래 경로) 검색 함


- #include "..\..\include\test.h"    와 같이 헤더파일의 특정 경로 지정 가능


▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  

45 #include 문으로 헤더파일을 선언해보자.cpp




반응형

【 C 언어 】#44 전역변수-지역변수 이해하기

Language/C & C++ 2018. 5. 14. 11:40 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #44 전역변수-지역변수 이해하기



 같은 변수명을 전역변수와 지역변수로 각각 선언하면서 초기값을 지정하게 되면, 변수가 사용되는 위치에 따라 값이 달라 질 수 있다. 지역변수와 전역변수가 이용 되는 범위에 대해 이해해보자.


▶ 문제  : int x를 전역변수와 지역변수로 각각 선언하고 초기값을 전역에 100, 메인함수 내에서 지역변수 초기값으로 50을 주고 출력하고, 서부루틴 함수 2개를 만들어 하나는 전달 인수값 200을 주어 출력하고, 하나는 전역변수 값을 출력하도록 하도록 한다. 


▶ 실행 결과 :


(이미지 클릭, 확대해서 보세요)




▶ 포인트 


- 통상적으로 전역변수명과 지역변수명을 같게 하여 작성하지 않으나, 필요한 경우도 있다.

- 변수 선언명을 각각, 지역변수 display_Localx(int x), 전역변수 display_Globalx(void) 로 선언한다.

- 지역변수는 메인 함수 내에서 전역변수 보다 우선순위가 높다.

- 함수 내에서 선언된 지역변수는 해당 함수 내에서만 사용된다. 따라서 다른 함수에서 사용하려면 다시 선언을 해주거나, 전역변수로 선언해야 한다.

- 동일한 변수 명이 전역과 지역함수에서 사용 될 경우, 초기값을 주어야 한다.   그렇지 않으면 쓰레기값(garbage)으로 초기화 될 수 있다.



▶ 프로그램 (답안 예시) : 

(이미지 클릭, 확대해서 보세요)


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


44 전역변수 지역변수 이해하기.cpp



반응형