-
문자 처리 라이브러리
학습내용 학습목표 ▪ 문자 문자열 입출력
▪ 문자 문자열 처리함수▪ 문자와 문자열 입출력 함수를 알고 활용할 수 있다.
▪ 문자와 문자열을 처리하는 함수를 활용할 수 있다.문자 문자열 입출력
1. 문자 관련 입출력 함수
[1] 라이브러리
☞ 문자 입출력 라이브러리를 활용
☞ scanf(“%c”,&ch), printf(“%c”, ch); / getc(); putc(); / _getch(); _getche(); _putch(); / getchar(); putchar();
[2] getc() putc()
☞ int getc( FILE *stream );
- 지정한 스트림으로 부터 문자 읽기
- 입력문자 ASCII코드 값을 리턴, 오류 시는 EOF리턴
☞ int putc( int ch, FILE *stream );
- 지정한 스트림에 지정한 값을 출력
- 정상 출력 시 출력문자 리턴, 오류 시는 EOF리턴
▪ 기본 스트림(stream) : stdin / stdout / stderr
[3] _getch() _getche() _putch()
[4] getchar() putchar()
2. 문자열 관련 입출력 함수
#include <stdio.h> int main() { char a[5]; gets(a); puts(a); return 0; }
#include <stdio.h> int main() { char a[5]; get_s(a,5); puts(a); return 0; }
문자 문자열 처리함수
1. 문자, 문자열 처리 관련 라이브러리☞ 헤더파일 : ctype.h string.h
☞ http://en.cppreference.com/w/c/string/byte
☞ isalpha(), islower, isupper()
☞ strlen(), strcpy(), strcmp()
2. 자주 사용하는 함수 이용하기
[1] isalpha()
if( (‘A’<=ch && ‘Z’>=ch) || (‘a’<=ch && ‘z’>=ch) )
☞ int isalpha( int ch );
☞ 헤더파일 : ctype.h
☞ 인수가 알파벳 문자인지를 확인
☞ 알파벳문자이면 0이 아닌 값을 리턴
☞ 알파벳문자가 아니면 0값을 리턴
Q. 문자 배열에서 알파벳 문자가 아닌 첫 번째 글자의 위치를 찾으시오.
#include <stdio.h> #include <ctype.h>> int main() { int i,cnt=1; char a[20]="Good Night"; for(i=0;i<20;i++) { if(!isalpha(a[i])) break; cnt++; } printf("알파벳문자가 아닌 첫번째 글자는 %d번째 입니다.",cnt); return 0; }
[2] islower() isupper()
☞ int islower( int ch ) 인수의 문자가 소문자이면 0이 아닌 값, 그 외이면 0을 리턴
☞ int isupper( int ch ); 인수의 문자가 대문자이면 0이 아닌 값, 그 외이면 0을 리턴
☞ 1989년 ANSI C 발표
Q. 문자 배열에서 소문자의 개수를 구하시오
#include <stdio.h> #include <ctype.h>> int main() { int i,cnt=0; char a[20]="Good Night"; for(i=0 ; i<20 ; i++) { if( islower(a[i]) ) cnt++; } printf("문자배열에서 소문자의 갯수는 %d 개 입니다.",cnt); return 0; }
[3] strlen()
☞ 헤더파일 : string.h
☞ size_t strlen( const char *str );
☞ 문자열에서 null 전까지의 길이를 리턴
[4] strcpy()
☞ 헤더파일 : string.h
☞ char *strcpy( char *dest, const char *src );
☞ null 문자를 포함하여 src의 문자열을 dest로 복사
☞ src 문자열의 길이가 dest 문자 배열의 크기보다 크면 실행 에러가 발생할 수 있음
#include <stdio.h> #include <string.h>> int main() { char a[20]="Good Night", b[20]; strcpy(b,a); puts(b); strcpy(b,"Hello"); puts(b); return 0; }
[5] strcmp()
☞ 헤더파일 : string.h
☞ int strcmp( const char *lhs, const char *rhs );
☞ null 문자 전까지 각 문자를 비교
☞ 동일하면 0을 리턴
☞ lhs가 크면 양수, rhs가 크면 음수를 리턴
#include <stdio.h> #include <string.h>> int main() { char a[20]="Good Night"; if(!strcmp(a,"Good Morning")) printf("Same"); else printf("Different"); return 0; }
학습정리
1. 문자 문자열 입출력
▪ 문자를 입력받을 때 사용 가능한 표준 C 라이브러리 함수로 getc(), getchar() 가 있음
▪ 문자를 출력할 때 사용 가능한 표준 C 라이브러리 함수로 putc(), putchar() 가 있음
▪ 버퍼를 사용하지 않는 입력 라이브러리 함수로 _getch(), _getche() 가 있음
▪ getche()는 에코(echo)를 사용하여 사용자가 입력한 내용을 화면에 보여줌
▪ 문자열을 입력받는 표준 라이브러리 함수는 gets(), gets_s()가 있음
2. 문자 문자열 처리함수
▪ 대표적인 문자나 문자열을 처리하는 라이브러리 함수를 선언한 헤더파일은 ctype.h와 string.h가 있음
▪ isalpah()는 알파벳 문자 여부를 판단하여 리턴함
▪ strlen() 함수는 문자열에서 null을 제외한 문자열의 길이를 리턴함
▪ strcpy()함수는 null을 포함하여 복사함
▪ strcmp()함수는 동일한 경우 0을 리턴함
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 2 - 수학 관련 라이브러리 (0) 2021.08.09 프로그래밍 언어 활용 part 2 - 도서관리 시스템 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 라이브러리 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 애플리케이션 최적화 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 디버깅 (0) 2021.08.08 댓글