/*************************************************************************
> File Name: UpperLowerDigit.cpp
> Author: wangzhicheng
> Mail: 2363702560@qq.com
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <iostream>
using namespace std;
#define ISUPPER 1
#define ISLOWER 2
#define ISDIGIT 4
class CharRecognition {
private:
int Array[256];
static CharRecognition object;
private:
void Init() {
int i;
memset(Array, 0, sizeof Array);
for(i = 'A';i <= 'Z';i++) Array[i] = ISUPPER;
for(i = 'a';i <= 'z';i++) Array[i] = ISLOWER;
for(i = '0';i <= '9';i++) Array[i] = ISDIGIT;
}
CharRecognition() {
Init();
}
public:
static CharRecognition &GetInstance() {
return object;
}
inline bool Isupper(char ch) const {
return ISUPPER & Array[ch];
}
inline bool Islower(char ch) const {
return ISLOWER & Array[ch];
}
inline bool Isdigit(char ch) const {
return ISDIGIT & Array[ch];
}
};
CharRecognition CharRecognition::object;
int main(int argc, char **argv) {
char ch = getchar();
getchar();
if(CharRecognition::GetInstance().Isupper(ch)) {
printf("%c is upper...!\n", ch);
}
else
if(CharRecognition::GetInstance().Islower(ch)) {
printf("%c is lower...!\n", ch);
}
else
if(CharRecognition::GetInstance().Isdigit(ch)) {
printf("%c is digit...!\n", ch);
}
return 0;
}
> File Name: UpperLowerDigit.cpp
> Author: wangzhicheng
> Mail: 2363702560@qq.com
> Created Time: 2016-12-05
> Brief: A fast algorithm for character recognition
************************************************************************/#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <iostream>
using namespace std;
#define ISUPPER 1
#define ISLOWER 2
#define ISDIGIT 4
class CharRecognition {
private:
int Array[256];
static CharRecognition object;
private:
void Init() {
int i;
memset(Array, 0, sizeof Array);
for(i = 'A';i <= 'Z';i++) Array[i] = ISUPPER;
for(i = 'a';i <= 'z';i++) Array[i] = ISLOWER;
for(i = '0';i <= '9';i++) Array[i] = ISDIGIT;
}
CharRecognition() {
Init();
}
public:
static CharRecognition &GetInstance() {
return object;
}
inline bool Isupper(char ch) const {
return ISUPPER & Array[ch];
}
inline bool Islower(char ch) const {
return ISLOWER & Array[ch];
}
inline bool Isdigit(char ch) const {
return ISDIGIT & Array[ch];
}
};
CharRecognition CharRecognition::object;
int main(int argc, char **argv) {
char ch = getchar();
getchar();
if(CharRecognition::GetInstance().Isupper(ch)) {
printf("%c is upper...!\n", ch);
}
else
if(CharRecognition::GetInstance().Islower(ch)) {
printf("%c is lower...!\n", ch);
}
else
if(CharRecognition::GetInstance().Isdigit(ch)) {
printf("%c is digit...!\n", ch);
}
return 0;
}