【 C 언어 】#65 문자열을 반대로 뒤집기 strrev()

Language/C & C++ 2019. 1. 3. 14:20 Posted by 엑소더스팩토리
반응형

【 C 언어 #65 문자열을 반대로 뒤집기 strrev()

 

 strrev() 함수는 입력받은 반대로 뒤집어 주는 함수이다. 


▶ 문제1  : 문자열을 입력 받게 하고 입력 받은 문자열의 순서를 뒤집어서 표시하는 프로그램을 작성하라. 


▶ 실행 결과 :

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



▶ 포인트 


- strrev() 함수 원형 :  char* strrev(char* string);

  

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

- 대문자 이외의 소문자나 숫자 기타 특수 문자 등은 변환되지 않는다.


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

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


▶ 프로그램 설명 : 

- strlen(string) == 0) break;  는 입력된 문자가 없을 경우 do 문을 빠져 나오게 된다. 

strrev (string) 입력 받은 문자들을 배열에 저장 시키고 이를 반대의 선서대로 출력표시 해주는 함수 있다. 

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


▶ 소스코드 다운로드 :  

65 문자열을 반대로 뒤집기strrev().cpp



반응형
반응형

【 C 언어 #64 문자열을 소문자로 변환하기( strlwr())

 

 strlwr() 함수는 입력받은 문자열에서 대문자를 소문자로 변환해주는 함수이다. 


▶ 문제1  : 문자열을 입력 받게 하고 입력 받은 문자열에서 대문자를 소문자로 치환하도록 하는 프로그램을 작성하라. 


▶ 실행 결과 :

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



▶ 포인트 


- strlwr() 함수 원형 :  char* strlwr(char* string);

  

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

- 대문자 이외의 소문자나 숫자 기타 특수 문자 등은 변환되지 않는다.


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

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


▶ 프로그램 설명 : 

- strlen(string) == 0) break;  는 입력된 문자가 없을 경우 do 문을 빠져 나오게 된다. 

strlwr (string) 입력 받은 문자 중에서 영문자 중 대문자만 모두 소문자로 변환한다.  영문자를 제외한 문자는 그대로 출력한다. 

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


▶ 소스코드 다운로드 :  

64 문자열을 소문자로 변환하기strlwr().cpp



반응형
반응형

【 C 언어 #62 문자열의 일부분을 특수문자로 채워넣기 ( strnset())

 

 strnset() 함수는 입력받은 문자열 중에 일부분을 특수문자 등으로 채워 줄 수 있는 함수이다. 일반적으로 정보보호를 위한 아이디나 비번의 일부를 가리는 형태로 사용이 가능하다. 



▶ 문제1  : 문자열을 입력 받게 하고 입력 받은 문자열 중 4번째 문자 까지를 별표(*)로 바꾸는 프로그램을 작성하라. 


▶ 실행 결과 :

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



▶ 포인트 


- strset() 함수 원형 :  char* strset(char* string, int c, unsigned int count);

  

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


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

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


▶ 프로그램 설명 : 

- strlen(string) == 0) break;  는 입력된 문자가 없을 경우 do 문을 빠져 나오도록 하였다. 

strnset (string, '*' , 4) 채울 문자는 '*' 이며, 앞에서 부터 4자리까지 채우도록 하였다. 

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


▶ 소스코드 다운로드 :  

62문자열을 특정 문자로 채워넣기.cpp



반응형
반응형

【 C 언어 】 #61 문자열을 특정문자로 채워넣기 strset()함수사용

 

 strset() 함수는 입력받은 문자열 중에 특정위치에 있는 문자를 출력할 수 있도록 해주는 기능을 한다. 이전에 검색한 위치를 저장할 수 있기 때문에 공백을 인지해서 문장을 구분 짓는 코드를 작성해보자.



▶ 문제1  : 문자열을 입력 받게 하고 입력 받은 문자열을 그대로 출력 한 다음, 문자열 중에 첫 번째 문자열을 그 아래 줄에 입력한 문자열 길이만큼 출력 하도록 하라. 


▶ 실행 결과 :

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



▶ 포인트 


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

  

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


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

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


▶ 프로그램 설명 : 

- strset(string, string[0])  함수에서,  string은 채울 문자이며, string[0] 배열의 첫 번째 문자로 채우라는 의미가 된다. 만약 세 번째 문자로 채우기를 한다면, string[2] 로 변경하면 된다. 


- if (strlen(string) == 0) break;  만약 입력문자가 없을 경우 프로그램을 종료 한다. 


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


▶ 소스코드 다운로드 :  


61문자열을 특정 문자로 채워넣기.cpp



반응형
반응형

【 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 언어 】 #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


반응형