반응형

【 C 언어 】 #57 strlen()함수를 이용하여 문자열 길이 구하기

 

 strlen() 함수를 이용하면 문자열의 길이를 쉽게 구할 수 있다. 문자열의 길이를 알고 있으면 여러 형태의 비교 처리가 가능하기 때문에 알아두면 유용할 것이다.



▶ 문제1  : 문자열을 입력받아 길이를 출력하는 프로그램을 작성하라.

 'Enter' 키를 누르면 프로그램을 종료하라. 


▶ 실행 결과 :


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



▶ 포인트 


- strlen() 함수 원형 :  unsigned int strlen(const char* string);


- 영문자 1개당 1바이트를 차지하며, 한글과 일본어는 한 글자당 2바이트를 찾이 한다.  예) Korea : 문자길이는 5,    한국 : 문자길이는 4


- 함수 사용을 위해 <string.h > 헤더파일을 선언하라.



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

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



▶ 프로그램 설명 : 

- Enter 키가 입력 되면 널 문자'\n' 가 입력 되고 그 값은 '0'임으로 이를 가지고 루틴을 빠져나오면(break) 된다.



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


▶ 문제2  : 문자열을 입력받아 길이를 출력하는 프로그램을 작성하되, 'Enter'키 또는 'exit'를 입력 하면 프로그램을 종료하라. (strcmp 함수 활용)



▶ 실행 결과 :

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


▶ 포인트 


- 위 프로그램을 기본으로 하여, 앞글에서 다루었던 strcmp() 함수를 참고하여 추가 한다. 


- 비교문에서 '||'  or 연산자를 이용하여 break; 처리를 같이 하면 간략해진다.


- 함수 사용을 위해 <string.h > 헤더파일을 선언하라.



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

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



▶ 프로그램 설명 : 

- 문자열 변수 배열을 하나만 만들어서 널 값과 'exit' 비교 처리를 동시에 처리하는 것이 중요 하다. 


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


▶ 소스코드 다운로드 :  


57 strlen()함수로 문자열의 길이 구하기1.cpp

57 strlen()함수로 문자열의 길이 구하기2.cpp



반응형
반응형

【 C 언어 】 #56 문자열 연결 함수 strcat() 사용하기

 


 strcat() 함수를 사용하여 문자열을 결합 시키는 방법에 대해 알아본다.  문자열 배열 변수 A에 문자열 배열 변수 B의 내용을 붙여(추가해)주는 것으로 이해하면 쉽다.  따라서 두 문자의 내용이 모두 들어갈 수 있는 충분한 변수공간(버퍼)이 필요하며, 이에 따라 99 문자 까지 확보되는 배열변수로 선언한다. 


▶ 문제  : 앞 단어를 입력 하고 뒷 단어를 입력한다.  strcat() 함수를 사용하여 

- "앞 단어 + 뒷 단어" 한 결과를 출력하고,   

- '뒷 단어' 출력  후

- "뒷 단어 + 앞 단어" 한 결과를 출력하라.


▶ 실행 결과 :


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



▶ 포인트 


- strcat() 함수 원형 :  char* strcat(char* dest, const char*src);


- 충분한 버퍼의 변수 공간을 위해서는 99자 입력까지 가능한 문자열 배열을 선언한다.   (예, char string1[100] )


- 함수 사용을 위해 <string.h > 헤더파일을 선언하라.





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

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



▶ 프로그램 설명 : 

- string2에 string1을 추가 하려 할 때, string1 변수의 값은 이미 '앞문자+뒷문자'의 추가된 값이 들어가 있다. 

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


▶ 소스코드 다운로드 :  


57 문자열 연결 함수 strcat() 사용하기.cpp



반응형
반응형

【 C 언어 】 #55 문자열 비교 함수 strcmp() 사용하기

 


 strcmp() 함수는 문자열의 아스키 값을 비교 할 수 있게 해주는 함수 이다. (대,소문자 구분하며, 만약 구분 하지 않고 비교하려면 _strcmp()함수를 사용한다)


▶ 문제  : strcmp() 함수를 사용하여 작성하고, 입력 받은 문자를 'exit'문자와 비교하여 아스키 값이 크면 '1'을 , 작으면 '-1'을 화면에 출력하라,  만약 'exit'를 입력하면 프로그램이 종료 되도록 하라.


▶ 실행 결과 :


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





▶ 포인트 


- strcmp() 함수 의 원형 :  int strcmp(const char* src1, const char* src2);


- 함수 사용을 위해 <string.h > 헤더파일을 선언하라.


- 문자열을 대소문자 구분 없이 비교 하려면 _stricmp() 함수를 사용하라.




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

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


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


▶ 소스코드 다운로드 :  


56 문자열 비교 함수 사용하기.cpp



반응형
반응형

【 C 언어 】 #55 문자열 복사 strcpy() 사용자 정의 함수 만들기

 


 strcpy() 함수와 같은 문자열을 복사해주는 사용자 정의 함수를 만들어 봄으로서 C언어에서 자주 활용되는 포인터 등의 개념에 익숙해지도록 한다. 


▶ 문제  : "여름" 이라는 문자열을 복사하는 사용자 정의 함수(User_strcopy()) 를 작성하라.


▶ 실행 결과 :


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




▶ 포인트 


- strcpy() 함수 의 원형 :  char* strcpy(char* dest, const char* src);


-문자열을 부분적으로 복사하려면, strncpy() 함수를 사용하라. 


- 문자열이 NULL('0') 값인지 비교하고 값이 있을 경우 puts()를 이용해 출력한다.





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

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


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


▶ 소스코드 다운로드 :  


55 문자열 복사(strcpy())함수 만들기.cpp


반응형

【 C 언어 】 #54 문자열 복사(strcpy) 이해하기

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

【 C 언어 】 #54 문자열 복사(strcpy) 이해하기

 


 문자열을 버퍼에 복사하여 사용하는 strcpy() 함수에 대해 이해함으로서 유용하게 자주 사용되는 C언어의 프로그래밍 형태를 이해할 수 있다.


▶ 문제  : "여름" 이라는 문자열을 복사하는 프로그램을 작성하라.


▶ 실행 결과 :


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



▶ 포인트 


- strcpy() 함수를 사용하기 위해서는 <string.h> 헤더 파일을 포함 해야 한다.


- strcpy() 함수 의 원형 :  char* strcpy(char* dest, const char* src);


-문자열을 부분적으로 복사하려면, strncpy() 함수를 사용하라.




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

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


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



▶ 소스코드 다운로드 :  


54 문자열 복사(strcpy()) 이해하기.cpp



반응형
반응형

【 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
다운로드

 

 

반응형