# Poco

# class Ascii

Library: Foundation
Package: Core
Header: Poco/Ascii.h

## Description

This class contains enumerations and static utility functions for dealing with ASCII characters and their properties.

The classification functions will also work if non-ASCII character codes are passed to them, but classification will only check for ASCII characters.

This allows the classification methods to be used on the single bytes of a UTF-8 string, without causing assertions or inconsistent results (depending upon the current locale) on bytes outside the ASCII range, as may be produced by Ascii::isSpace(), etc.

## Member Summary

Member Functions: hasProperties, hasSomeProperties, isAlpha, isAlphaNumeric, isAscii, isDigit, isHexDigit, isLower, isPrintable, isPunct, isSpace, isUpper, properties, toLower, toUpper

## Enumerations

### CharacterProperties

ASCII character properties.

ACP_CONTROL = 0x0001

ACP_SPACE = 0x0002

ACP_PUNCT = 0x0004

ACP_DIGIT = 0x0008

ACP_HEXDIGIT = 0x0010

ACP_ALPHA = 0x0020

ACP_LOWER = 0x0040

ACP_UPPER = 0x0080

ACP_GRAPH = 0x0100

ACP_PRINT = 0x0200

## Member Functions

### hasProperties

static bool hasProperties(
int ch,
int properties
);

Returns true if the given character is within the ASCII range and has all of the given properties.

### hasSomeProperties

static bool hasSomeProperties(
int ch,
int properties
);

Returns true if the given character is within the ASCII range and has at least one of the given properties.

### isAlpha

static bool isAlpha(
int ch
);

Returns true if and only if the given character is an alphabetic character.

### isAlphaNumeric

static bool isAlphaNumeric(
int ch
);

Returns true if and only if the given character is an alphabetic character.

### isAscii

static bool isAscii(
int ch
);

Returns true if and only if the given character code is within the ASCII range (0 .. 127).

### isDigit

static bool isDigit(
int ch
);

Returns true if and only if the given character is a digit.

### isHexDigit

static bool isHexDigit(
int ch
);

Returns true if and only if the given character is a hexadecimal digit.

### isLower

static bool isLower(
int ch
);

Returns true if and only if the given character is a lowercase alphabetic character.

### isPrintable

static bool isPrintable(
int ch
);

Returns true if and only if the given character is printable.

### isPunct

static bool isPunct(
int ch
);

Returns true if and only if the given character is a punctuation character.

### isSpace

static bool isSpace(
int ch
);

Returns true if and only if the given character is a whitespace.

### isUpper

static bool isUpper(
int ch
);

Returns true if and only if the given character is an uppercase alphabetic character.

### properties

static int properties(
int ch
);

Return the ASCII character properties for the character with the given ASCII value.

If the character is outside the ASCII range (0 .. 127), 0 is returned.

### toLower

static int toLower(
int ch
);

If the given character is an uppercase character, return its lowercase counterpart, otherwise return the character.

### toUpper

static int toUpper(
int ch
);

If the given character is a lowercase character, return its uppercase counterpart, otherwise return the character.