]> git.saurik.com Git - apple/icu.git/blame_incremental - icuSources/samples/props/props.cpp
ICU-64243.0.1.tar.gz
[apple/icu.git] / icuSources / samples / props / props.cpp
... / ...
CommitLineData
1/*
2*******************************************************************************
3*
4* © 2016 and later: Unicode, Inc. and others.
5* License & terms of use: http://www.unicode.org/copyright.html#License
6*
7*******************************************************************************
8*******************************************************************************
9*
10* Copyright (C) 2000, International Business Machines
11* Corporation and others. All Rights Reserved.
12*
13*******************************************************************************
14* file name: props.cpp
15* encoding: UTF-8
16* tab size: 8 (not used)
17* indentation:4
18*
19* created on: 2000sep22
20* created by: Markus W. Scherer
21*
22* This file contains sample code that illustrates the use of the ICU APIs
23* for Unicode character properties.
24*/
25
26#define __STDC_FORMAT_MACROS 1
27#include <inttypes.h>
28
29#include <stdio.h>
30#include "unicode/utypes.h"
31#include "unicode/uchar.h"
32#include "unicode/uclean.h"
33
34static void
35printProps(UChar32 codePoint) {
36 char buffer[100];
37 UErrorCode errorCode;
38
39 /* get the character name */
40 errorCode=U_ZERO_ERROR;
41 u_charName(codePoint, U_UNICODE_CHAR_NAME, buffer, sizeof(buffer), &errorCode);
42
43 /* print the code point and the character name */
44 printf("U+%04" PRId32 "\t%s\n", codePoint, buffer);
45
46 /* print some properties */
47 printf(" general category (numeric enum value): %u\n", u_charType(codePoint));
48
49 /* note: these APIs do not provide the data from SpecialCasing.txt */
50 printf(" is lowercase: %d uppercase: U+%04" PRId32 "\n", u_islower(codePoint), u_toupper(codePoint));
51
52 printf(" is digit: %d decimal digit value: %d\n", u_isdigit(codePoint), u_charDigitValue(codePoint));
53
54 printf(" BiDi directional category (numeric enum value): %u\n", u_charDirection(codePoint));
55}
56
57/* Note: In ICU 2.0, the Unicode class is deprecated - it is a pure wrapper around the C APIs above. */
58
59extern int
60main(int argc, const char *argv[]) {
61 static const UChar32
62 codePoints[]={
63 0xd, 0x20, 0x2d, 0x35, 0x65, 0x284, 0x665, 0x5678, 0x23456, 0x10317, 0x1D01F, 0x10fffd
64 };
65 int i;
66
67 for(i=0; i<sizeof(codePoints)/sizeof(codePoints[0]); ++i) {
68 printProps(codePoints[i]);
69 puts("");
70 }
71
72 u_cleanup();
73 return 0;
74}