출처: http://forum.falinux.com/
<ctype.h> 헤어 필요 (#include <type.h>)
1. 소문자인지 판별하기
형태 int islower(int c)
인수 c 판별할 문자
반환 소문자이면 0 이외의 정수, 소문자가 아니면 0
#include <stdio.h>
#include <ctype.h> #include <string.h> int main() {
int ch1 = 'a';
int ch2 = 'A';
int ch3 = '1';
if (islower(ch1))
printf("%c는 소문자입니다.\n", ch1);
else
printf("%c는 소문자가 아닙니다.\n", ch1);
if (islower(ch2))
printf("%c는 소문자입니다.\n", ch2);
else
printf("%c는 소문자가 아닙니다.\n", ch2);
if (islower(ch3))
printf("%c는 소문자입니다.\n", ch3);
else
printf("%c는 소문자가 아닙니다.\n", ch3);
return 0;
}
2. 대문자인지 판별하기
형태 int isupper(int c)
인수 c 판별할 문자
반환 대문자이면 0 이외의 정수, 대문자가 아니면 0
#include <stdio.h>
#include <ctype.h> #include <string.h> int main() { char *str = "1Ab\n@"; int ch; int idx; for (idx = 0; idx < strlen(str); idx++) { ch = str[idx]; if (isupper(ch)) printf("%c는 대문자입니다.\n", ch); else printf("%c는 대문자가 아닙니다.\n", ch); }
return 0; }
3. 구획문자인지 판별하기
형태 int ispunct(int c)
인수 c 판별할 문자
반환 구획문자이면 0 이외의 정수, 구획문자가 아니면 0
#include <stdio.h> #include <ctype.h>
#include <string.h>
int main() { char *str = "1 A!@#"; int ch; int idx; for ( idx= 0; idx < strlen(str); idx++) { ch = str[idx]; if ( ispunct( ch)) printf( "%c는 구획 문자입니다.\n", ch); else printf( "%c는 구획 문자가 아닙니다.\n", ch); }
return 0; }
4. 공백문자인지 판별하기
형태 int isspace(int c)
인수 c 판별할 문자
반환 공백문자이면 0 이외의 정수, 구획문자가 아니면 0
#include <stdio.h> #include <ctype.h>
#include <string.h> int main() { char *str = "1 A\n\f\t\v\r!@#"; int ch; int idx; for ( idx= 0; idx < strlen( str); idx++) { ch = str[idx];
if (isspace( ch)) printf("%c는 공백문자입니다.\n", ch); else printf("%c는 공백문자가 아닙니다.\n", ch); }
return 0; }
5. 소문자를 대문자로 변환하기
형태 int toupper(int ch)
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main( void) { char str[] = "0xaf1Agh!@#"; int idx; for ( idx= 0; idx < strlen( str); idx++) { str[idx] = (char)toupper(str[idx]); }
printf( "%s\n", str);
return 0; }
6. 대문자를 소문자로 변환하기
형태 int tolower(int ch)
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main
{ char str[] = "0xAF1Agh!@#"; int idx; for ( idx= 0; idx < strlen( str); idx++) { str[idx] = (char)tolower( str[idx]); } printf( "%s\n", str);
return 0; }
7. 대소문자 무시하고 문자열 비교하기
형태 char * strcasecmp(const char *str1, const char *str2 )
인수 비교할 대상 문자열, 비교할 문자열
반환 0 = 결과 값이면 s1 = s2, 0 < 결과 값이면 s1 > s2, 0 > 결과 값이면 s1 < s2
#include <stdio.h> #include <string.h> int main() { char str_apple[] = "apple"; char str_apple2[] = "Apple"; char str_apple3[] = " Apple"; char str_appleII[]= "AppleII"; printf( "%s with %s = %d\n", str_apple, str_apple , strcasecmp(str_apple, str_apple ) ); printf( "%s with %s = %d\n", str_apple, str_apple2 , strcasecmp(str_apple, str_apple2 ) ); printf( "%s with %s = %d\n", str_apple, str_apple3 , strcasecmp(str_apple, str_apple3 ) ); printf( "%s with %s = %d\n", str_apple, str_appleII, strcasecmp(str_apple, str_appleII) ); return 0; }
8. 대소문자 무시하고 문자열 비교하기
형태 char * strncasecmp(const char *str1, const char *str2, size_t n )
인수 비교할 대상 문자열, 비교할 문자열
반환 0 = 결과 값이면 s1 = s2, 0 < 결과 값이면 s1 > s2, 0 > 결과 값이면 s1 < s2
#include <stdio.h>
#include <string.h> int main() { char str_apple[] = "apple"; char str_apple2[] = "Apple"; char str_apple3[] = " Apple"; char str_appleII[]= "AppleII"; printf( "%s with %s = %d\n", str_apple, str_apple , strncasecmp( str_apple, str_apple , 3) ); printf( "%s with %s = %d\n", str_apple, str_apple2 , strncasecmp( str_apple, str_apple2 , 3) ); printf( "%s with %s = %d\n", str_apple, str_apple3 , strncasecmp( str_apple, str_apple3 , 3) ); printf( "%s with %s = %d\n", str_apple, str_appleII, strncasecmp( str_apple, str_appleII, 3) ); return 0; }
9. 영문자인지 또는 숫자인지 판별하기
형태 int isalnum(int c)
인수 c 판별할 문자
반환 영문자 또는 숫자이면 0 이외의 정수, 영문자 또는 숫자가 아니면 0
#include <stdio.h> #include <ctype.h> int main() { int ch1 = '#'; int ch2 = 'a'; int ch3 = '1'; if ( isalnum( ch1)) printf( "%c는 영문이나 숫자입니다.\n", ch1); else printf( "%c는 영문이나 숫자가 아닙니다.\n", ch1); if ( isalnum( ch2)) printf( "%c는 영문이나 숫자입니다.\n", ch2); else printf( "%c는 영문이나 숫자가 아닙니다.\n", ch2); if ( isalnum( ch3)) printf( "%c는 영문이나 숫자입니다.\n", ch3); else printf( "%c는 영문이나 숫자가 아닙니다.\n", ch3); return 0; }
10. 영문자인지 판별하기
형태 int isalpha(int c)
인수 c 판별할 문자
반환 영문자면 0 이외의 정수, 영문자 또는 숫자가 아니면 0
#include <stdio.h> #include <ctype.h> int main() { int ch1 = '#'; int ch2 = 'a'; int ch3 = '1'; if ( isalpha( ch1)) printf( "%c는 영문자입니다.\n", ch1); else printf( "%c는 영문자가 아닙니다.\n", ch1); if ( isalpha( ch2)) printf( "%c는 영문자입니다.\n", ch2); else printf( "%c는 영문자가 아닙니다.\n", ch2); if ( isalpha( ch3)) printf( "%c는 영문자입니다.\n", ch3); else printf( "%c는 영문자가 아닙니다.\n", ch3); return 0; }
11. 숫자문자('0'~'9')인지 판별하기
형태 int isdigit(int c)
인수 c 판별할 문자
반환 숫자문자('0'~'9')이면 0 이외의 정수, 숫자문자('0'~'9')가 아니면 0
#include <stdio.h> #include <ctype.h> int main() { int ch1 = '1'; int ch2 = 'a'; int ch3 = 256; // 아스키값 이상 if ( isdigit( ch1)) printf( "%c(x%03x)는 숫자 문자입니다.\n", ch1, ch1); else printf( "%c(x%03x)는 숫자 문자가 아닙니다.\n", ch1, ch1); if ( isdigit( ch2)) printf( "%c(x%03x)는 숫자 문자입니다.\n", ch2, ch2); else printf( "%c(x%03x)는 숫자 문자가 아닙니다.\n", ch2, ch2); if ( isdigit( ch3)) printf( "%c(x%03x)는 숫자 문자입니다.\n", ch3, ch3); else printf( "%c(x%03x)는 숫자 문자가 아닙니다.\n", ch3, ch3); return 0; }
12. 제어문자인지 판별하기
형태 int iscntrl(int c)
인수 c 판별할 문자
반환 제어문자이면 0 이외의 정수, 제어문자가 아니면 0
#include <stdio.h> #include <ctype.h> int main() { int ch1 = '\t'; // 탭 문자 int ch2 = '\n'; // 엔터 문자 int ch3 = 'a'; if ( iscntrl( ch1)) printf( "%c는 제어 문자입니다.\n", ch1); else printf( "%c는 제어 문자가 아닙니다.\n", ch1); if ( iscntrl( ch2)) printf( "%c는 제어 문자입니다.\n", ch2); else printf( "%c는 제어 문자가 아닙니다.\n", ch2); if ( iscntrl( ch3)) printf( "%c는 제어 문자입니다.\n", ch3); else printf( "%c는 제어 문자가 아닙니다.\n", ch3); return 0; }
13. 공백문자 또는 탭문자인지 판별하기
형태 int isblank(int c)
인수 c 판별할 문자
반환 공백문자 또는 탭문자이면 0 이외의 정수, 공백문자 또는 탭문자가 아니면 0
#include <stdio.h> #include <ctype.h> int main() { int ch1 = '\t'; // 탭 문자 int ch2 = ' '; // 공백 문자 int ch3 = '\n'; // 엔터 문자 int ch4 = 'a'; if ( isblank( ch1)) printf( "%c(x%02x)는 탭 또는 공백문자입니다.\n", ch1, ch1); else printf( "%c(x%02x)는 탭 또는 공백문자가 아닙니다.\n", ch1, ch1); if ( isblank( ch2)) printf( "%c(x%02x)는 탭 또는 공백문자입니다.\n", ch2, ch2); else printf( "%c(x%02x)는 탭 또는 공백문자가 아닙니다.\n", ch2, ch2); if ( isblank( ch3)) printf( "%c(x%02x)는 탭 또는 공백문자입니다.\n", ch3, ch3); else printf( "%c(x%02x)는 탭 또는 공백문자가 아닙니다.\n", ch3, ch3); if ( isblank( ch4)) printf( "%c(x%02x)는 탭 또는 공백문자입니다.\n", ch4, ch4); else printf( "%c(x%02x)는 탭 또는 공백문자가 아닙니다.\n", ch4, ch4); return 0; }
'프로그래밍 > C & C++' 카테고리의 다른 글
[C] 메모리 관리 함수 (0) | 2016.07.08 |
---|---|
[C] 날짜/시간 처리 함수 (0) | 2016.07.07 |
[C] 포인터 (0) | 2016.03.31 |
[C] 구조체 (0) | 2016.03.27 |
[C] 문자열 처리함수 (0) | 2016.03.22 |