1 /*
2 *******************************************************************************
3 *
4 * Copyright (C) 2003-2004, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 *******************************************************************************
8 */
9
10 #include <unicode/unistr.h>
11 #include <unicode/ustdio.h>
12 #include <unicode/brkiter.h>
13 #include <stdlib.h>
14
15 U_CFUNC int c_main(UFILE *out);
16
printUnicodeString(UFILE * out,const UnicodeString & s)17 void printUnicodeString(UFILE *out, const UnicodeString &s) {
18 UnicodeString other = s;
19 u_fprintf(out, "\"%S\"", other.getTerminatedBuffer());
20 }
21
22
main(void)23 int main( void )
24 {
25 UFILE *out;
26 UErrorCode status = U_ZERO_ERROR;
27 out = u_finit(stdout, NULL, NULL);
28 if(!out) {
29 fprintf(stderr, "Could not initialize (finit()) over stdout! \n");
30 return 1;
31 }
32 ucnv_setFromUCallBack(u_fgetConverter(out), UCNV_FROM_U_CALLBACK_ESCAPE,
33 NULL, NULL, NULL, &status);
34 if(U_FAILURE(status)) {
35 u_fprintf(out, "Warning- couldn't set the substitute callback - err %s\n", u_errorName(status));
36 }
37
38 /* End Demo boilerplate */
39
40 u_fprintf(out,"ICU Case Mapping Sample Program\n\n");
41 u_fprintf(out, "C++ Case Mapping\n\n");
42
43 UnicodeString string("This is a test");
44 /* lowercase = "istanbul" */
45 UChar lowercase[] = {0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0};
46 /* uppercase = "LATIN CAPITAL I WITH DOT ABOVE STANBUL" */
47 UChar uppercase[] = {0x0130, 0x53, 0x54, 0x41, 0x4e, 0x42, 0x55, 0x4C, 0};
48
49 UnicodeString upper(uppercase);
50 UnicodeString lower(lowercase);
51
52 u_fprintf(out, "\nstring: ");
53 printUnicodeString(out, string);
54 string.toUpper(); /* string = "THIS IS A TEST" */
55 u_fprintf(out, "\ntoUpper(): ");
56 printUnicodeString(out, string);
57 string.toLower(); /* string = "this is a test" */
58 u_fprintf(out, "\ntoLower(): ");
59 printUnicodeString(out, string);
60
61 u_fprintf(out, "\n\nlowercase=%S, uppercase=%S\n", lowercase, uppercase);
62
63
64 string = upper;
65 string.toLower(Locale("tr", "TR")); /* Turkish lower case map string =
66 lowercase */
67 u_fprintf(out, "\nupper.toLower: ");
68 printUnicodeString(out, string);
69
70 string = lower;
71 string.toUpper(Locale("tr", "TR")); /* Turkish upper case map string =
72 uppercase */
73 u_fprintf(out, "\nlower.toUpper: ");
74 printUnicodeString(out, string);
75
76
77 u_fprintf(out, "\nEnd C++ sample\n\n");
78
79 // Call the C version
80 int rc = c_main(out);
81 u_fclose(out);
82 return rc;
83 }
84
85