Blog/JAVA기반 스마트웹 개발2021

프로그래밍 언어 활용 part 2 - 문자 처리 라이브러리

고구마달랭이 2021. 8. 8. 22:11

 

문자 처리 라이브러리

학습내용 학습목표
▪ 문자 문자열 입출력
▪ 문자 문자열 처리함수
▪ 문자와 문자열 입출력 함수를 알고 활용할 수 있다.
▪ 문자와 문자열을 처리하는 함수를 활용할 수 있다.

문자 문자열 입출력

 

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을 리턴함