반응형

【 C 언어 】 #60 문자열을 구분하기 [strtok()함수사용]

 

 strtok() 함수는 이전에 검색한 위치를 저장할 수 있기 때문에 공백을 인지해서 문장을 구분 짓는 코드를 작성해보자.



▶ 문제1  : 영어 문장(문자열)을 입력받고 공백으로 구분하여 화면에 출력하라. 


▶ 실행 결과 :

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



▶ 포인트 


- strtok() 함수 원형 :  char* strtok(char* strToken, const char* strDelimit)


- 함수 사용을 위해 strtok() 함수가 포함 되어 있는 <string.h > 헤더파일을 선언하라.


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

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


▶ 프로그램 설명 : 

- strtok() 함수는 내부적으로 이전에 검색한 위치를 저장하고 있다. 따라서 string이 아닌 NULL을 strtok()함수에 넘겨 주면, 검색된 다음 위치부터 자동으로 검색하게 된다.

token = strtok(string,TOKEN);  TOKEN을 " "(공백) 으로 define(정의) 했으므로 공백이 있는지 찾는다. 만약 공백을 찾은 경우, 공백이 있는 자리에 NULL값을 넣은 후 문자열의 선두 번지를 반환 한다.  만약 공백이 없는 경우, 문자 배열 변수 string의 선두 번지를 반환한다.


while(token != NULL)  반환값이 NULL인지 비교한다. NULL이 아니면 token 값을 출력(pus)하고 NULL 이면 while문을 종료 한다.


token = strtok(NULL, TOKEN);  앞의 코딩 문 token = strtok(string,TOKEN)에서 공백을 찾은, 다음 번지부터 다시 공백을 찾는데, 공백이 있을 경우 NULL값을 넣은 후 다음 문자열의 선두 번지를 반환한다. 

- strtok() 함수는 이전에 검색한 위치를 저장하고 있기 때문에 string이 아닌 NULL 값을 strtok()함수에 넘겨주면, 검색된 다음 위치부터 자동으로 검색하게 된다. 


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


▶ 소스코드 다운로드 :  


60 문자열을 구분하기 strtok() 함수 사용하기.cpp



반응형
반응형

【 C 언어 】 #59 문자열 중에서 특정문자만 검색하기 ( strchr 함수 사용하기)

 

 strchr() 함수를 사용하면 입력받은 문자열 중에 특정 문자 하나가 있는지 검색할 수 있다. 



▶ 문제1  : 영어 문장(문자열)을 입력받고 문자열 중에서 'u' 라는 문자가 있는지 검색하여 있으면 찾았다는 문장을 출력하고, 없으면 없다는 메세지를 출력하라. 'u' 문자의 위치값도 표시하라


▶ 실행 결과 :

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



▶ 포인트 


- strchr() 함수 원형 :  char* strchr(const char* string, int c);


- 함수 사용을 위해 strstr() 함수가 포함 되어 있는 <string.h > 헤더파일을 선언하라.


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

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


▶ 프로그램 설명 : 

- strstr() 함수는 문자열 뿐 아니라 단일 문자도 검색이 가능하다

- char *ret   :  strchr()함수가 반환하는 문자형 포인터 값을 저장할 변수를 정의한다. 

- 문자열을 배열 변수 string[100]에 입력받는다. 

- #define FIND_CHR 'u'   :   u 를 대체하여 FIND_CHR로 선언한다

- ret = strchr(string, FIND_CHR   :  입력받은 문자열 중에 'u' 가 있는지 검색하여 찾으면 그 위치의 메로리(번지) 값을 반환(저장) 한다.  없으면 NULL포인터를 반환


- printf("%d 위치에서...., ret-string+1)     :  문자열 중에서 'u'값이 검색된 경우, 그 위치의 메모리 값(번지)에서 문자열 배열 변수 string의 메모리 값(번지)를 빼면 'u'문자의 위치 값을 얻을 수 있다. 단, ...0 번지의 경우 계산이 되지 않기에 정확한 순서값을 얻기 위해 +1을 더해 준다.


- 프로그램에서 처럼 변수 'ret' 와 'string'의 메모리 값(번지)을 출력 해보면 좀더 명확히 이해 될 것이다.   


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


▶ 소스코드 다운로드 :  


59 문자열 검색하기 strchr() 함수 사용하기.exe



반응형
반응형

【 C 언어 】 #58 문자열 검색하기 ( strstr 함수 사용하기)

 

 strstr() 함수를 사용하여 입력받은 문자열 중에 "blue" 라는 글자가 있는지 검색하는 프로그래밍을 작성해보자.



▶ 문제1  : 영어 문장(문자열)을 입력받아 'blue' 라는 문자가 있는지 검색하여 없으면 없다는 메세지를 출력하고 다시 문장입력을 반복한다. 있다면 문장중 몇 번째에 위치해 있는지 표시한 후 프로그램을 종료 한다.


▶ 실행 결과 :

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



▶ 포인트 


- strstr() 함수 원형 :  char* strstr(const char* string, const char* strCharSet);


- strstr() 함수가 반환하는 문자형 포인터 값을 저장할 변수를 선언한다.


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



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

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



▶ 프로그램 설명 : 

- strstr() 함수는 문자열 뿐 아니라 단일 문자도 검색이 가능하다



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


▶ 소스코드 다운로드 :  


58 문자열 검색하기 strstr() 함수 사용하기.cpp



반응형

【 C 언어 】#21 논리 연산자 이해하기

Language/C & C++ 2018. 2. 20. 09:34 Posted by 엑소더스팩토리
반응형

※  21 논리 연산자 이해하기 ( &&, ||, ! -AND, OR, NOT )


  논리 if 문에서 자주 사용되며 사용조건을 2가지 이상 넣을 수 있어 활용도가 높다.  


▶ 문제 :  x = 7,  y =3 의 값을 주고 if문을 사용하여 && , ||, ! 의 경우를 출력하도록 하라. 


▶ 포인트 

논리 연산자의 사용 예 : 

1.  (5==5) && (3 !=2)     :  두 수식이 참이므로 참이다.

2. (3>1) || (6 <1)            : 하나의 수식이 참이므로 참이다.  

                           (OR기호인 '||'는 키보드 shift키+\ 키 이다)

3. (5==3) && (7==7)      : 하나의 수식이 거짓 이므로 거짓

4. (5==3)   ||  (7==7)      : 하나의 수식이 참 이므로 참

5. !(3==4)                     : 3은 4와 같지 않음 이므로 참



▶ 프로그램 : 




▶ 실행 결과 :



▶ 소스코드 다운로드 :  

21 논리 연산자 이해하기.cpp



반응형

【 C 언어 】#20 관계 연산자 이해하기

Language/C & C++ 2018. 2. 19. 14:48 Posted by 엑소더스팩토리
반응형

※  20 관계 연산자 이해하기 (>, <, ==, >=, !=, ... )


  관계 연산자는 양쪽의 값을 수학적으로 비교할 수 있도록 해준다. 

( '='는 대입연산자이며, 같다는 '==' 임에 주의,  같지 않다는 '!='이다. )


▶ 문제 :  == , != , > , < , >= , <= 를 출력하라. 


▶ 포인트 

printf 문을 사용하여 단순 출력을 하라.  (추후, if문을 통해 사용해 볼 수 있다_


▶ 프로그램 : 




▶ 실행 결과 :



▶ 소스코드 다운로드 :  

20 관계 연산자 이해하기.cpp



반응형

【 C 언어 】#18 문자열형 상수 이해하기 (char)

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

※  18 문자열형 상수 이해하기(char)


  문자열형 상수 또한 다른 상수와 마찬가지로 프로그램내에서 변동이 되어서는 안 되는 문자를 정의 할 때 사용한다. 


▶ 문제 "환영합니다" 등의 문자열을 넣어,  #define, const char* ,  두가지 형태로 선언하라.


▶ 포인트 

문자열형 상수로 선언된 const char "Myhome"의 값은 이하 프로그램 내에서는 다른 값으로 변경할 수 없다. 


▶ 프로그램 : 



  괄호 안의 값이 참(1)이면 아래 if문을 실행, 거짓(0)이면 else문을 실행 시킨다.



▶ 실행 결과 :



▶ 소스코드 다운로드 :  

18 문자열형 상수 이해하기(char).cpp



반응형

【 C 언어 】#17 논리형 상수 이해하기 (bool)

Language/C & C++ 2018. 2. 8. 10:53 Posted by 엑소더스팩토리
반응형

※  17 논리형 상수 이해하기 (bool)


  논리형 변수는 논리형 상수를 대신하여 사용되는 값이다. 보통 참값은 TRUE, 거짓은 FALSE 형태로 사용되며, TRUE는 1,  FALSE는 0으로 정의 하여 상 


▶ 문제 : 논리형 상수 TRUE를 1로 FALSE를 0으로 정의 하고, if 문으로 참, 거짓을 출력하는 프로그램을 작성하라.


▶ 포인트 

'#define' 문으로 TRUE값을 1,  FALSE 값을 0으로 정의 한다. 


▶ 프로그램 : 


  괄호 안의 값이 참(1)이면 아래 if문을 실행, 거짓(0)이면 else문을 실행 시킨다.



▶ 실행 결과 :


▶ 소스코드 다운로드 :  

17 논리형 상수 이해하기(bool).cpp



반응형

【 C 언어 】#16 실수형 상수 이해하기 (double)

Language/C & C++ 2018. 2. 8. 10:05 Posted by 엑소더스팩토리
반응형

※  16 실수형 상수 이해하기 (double)


  실수형 상수 PI를 정의하고 파이의 값을 대입하여 PI 값의 고정된  실수형 상수를 활용하기 위해 사용한다.   실수형 상수는 정수형을 포함하고 또한 문자형 상수를 포함 하는 가장 큰 크기를 가진다.   [ 실수형 > 정수형 > 문자형 ]


▶ 문제 : 실수형 상수 PI 값 3.141592를 대입하는 실수형 상수 값을 정의 하라. 


▶ 포인트 

'#define' 과 'const double'로 각각 정의 하고 이 값들을 프로그램 내에서 임의로 변경하려 하면 에러가 발생한다는 것을 이해하도록 한다. 


▶ 프로그램 : 



 12~13번 줄의 문장을 주석처리 없이 실행 시켜 보고 에러 발생이 되면 주석처리를 통하여 실행이 되도록 하여 비교 해보라 


▶ 실행 결과 :


▶ 소스코드 다운로드 :  

16 실수형 상수 이해하기(double).cpp




반응형

【 C 언어 】#15 정수형 상수 이해하기 (const int)

Language/C & C++ 2018. 2. 8. 09:46 Posted by 엑소더스팩토리
반응형

※  15 정수형 상수 이해하기 (const int)


  정수형 상수와 또한 한 번 선언되면 프로그램 전체가 종료 될 때 까지 그 값이 바뀌지 않게 하기 위해 사용한다.


▶ 문제 : 정수형 상수 선언을 하여(const int 또는 #define ) 값을 지정한 후 다시 값을 집어 넣거나 다른 값을 집어 넣으면 에러가 발생하는지 확인 하는 코드를 작성하라.   


▶ 포인트 

'#define' 과 'const char'의 차이는 데이터 형을 명확하게 구분 하느냐 하지 않느냐의 차이다.   const char는 대입할 값을 명확히 '문자형 상수'임을 지정하는 것이다.


▶ 프로그램 : 


 9~10번 줄의 문장을 주석처리 없이 실행 시켜 보고 에러 발생이 되면 주석처리를 통하여 실행이 되도록 하여 비교 해보라 


▶ 실행 결과 :


▶ 소스코드 다운로드 :  

15 정수형상수 이해하기(const int).cpp




반응형

【 C 언어 】#14 문자형 상수 이해하기 (char)

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

※  14 문자형 상수 이해하기 (char)


  문자형 상수와 문자형 변수의 구분을 이해한다. 문자형 상수는 한 번 선언되면 프로그램 전체가 종료 될 때 까지 그 값이 바뀌지 않게 하기 위해 사용한다.


▶ 문제 : 문자형 상수 선언을 하여(const char 또는 #define ) 값을 지정한 후 다시 값을 집어 넣거나 다른 값을 집어 넣으면 에러가 발생하는지 확인 하는 코드를 작성하라.   


▶ 포인트 

'#define' 과 'const char'의 차이는 데이터 형을 명확하게 구분 하느냐 하지 않느냐의 차이다.   const char는 대입할 값을 명확히 '문자형 상수'임을 지정하는 것이다.


▶ 프로그램 : 


 9~10번 줄의 문장을 주석처리 없이 실행 시켜 보고 에러 발생이 되면 주석처리를 통하여 실행이 되도록 하여 비교 해보라 


▶ 실행 결과 :


▶ 소스코드 다운로드 :  

14 문자형 상수 이해하기(char).cpp


반응형