본문 바로가기
카테고리 없음

문자 처리 라이브러리

by KWONE 2024. 6. 27.

  
#include <ctype.h>
isalpha(C) //c가 영문자인가(a~z,A~Z)
isupper(c) //c가 대문자인가?(A~Z)
islower(c) //c가 소문자인가?(a~z)
isdigit(c) //c가 숫자인가?(0~9)
isalnum(C) //c가 영문자이나 숫자인가?(a~z,A~Z,0~9)
isxdigit(c) //c가 16진수의 숫자인가?(0~9,A~F,a~f)
isspace(c) //c가 공백문자인가?(',''\n''\t''\v''\r')
ispunct(c) //c가 구두점 문자인가?
isprint(c) //c가 출력가능한 문자인가?
iscntrl(c) //c가 제어 문자인가?
isascii(c) //c가 아스키 코드인가?

다음 문자 처리 함수들을 사용했을때 검사 결과가 참이면 1이 반환되고, 거짓이면 0이 반환된다. 

인수는 int형으로 선언되고 반환값도 int형이 된다.


  
#include <ctype.h>
toupper(c) //c를 대문자로 바꾼다.
tolower(c) //c를 소문자로 바꾼다.
toascii(c) //c를 아스키 코드로 바꾼다.

이제는 문자를 대문자나 소문자 혹은 아스키코드로 변경할때 아스키코드 숫자를 더하거나 빼주지 않아도 된다. 


  
//단어 개수 세기
for(int i=0;s[i]!=NULL; i++)
{
if(isalpha(s[i])){ //알파벳인경우
if(waiting){
wc++; //공백이 아니라 알파벳이 나올때마다 단어개수를 1씩 올린다.
waiting=0; //단어를 처리하는 중
}
}
else
waiting=1; //알파벳이 아니면 단어를 기다린다.
}

만약 단어에 숫자도 포함된다고 하면 isalpha()||isdigit()을 조건식에 써주면 된다.