ACIL FM
Dark
Refresh
Current DIR:
/usr/share/doc/libicu-devel/samples/citer
/
usr
share
doc
libicu-devel
samples
citer
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
citer.cpp
5.42 MB
chmod
View
DL
Edit
Rename
Delete
citer.vcxproj
7.72 MB
chmod
View
DL
Edit
Rename
Delete
citer.vcxproj.filters
900 B
chmod
View
DL
Edit
Rename
Delete
Makefile
620 B
chmod
View
DL
Edit
Rename
Delete
readme.txt
2.17 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/share/doc/libicu-devel/samples/citer/citer.cpp
/* ******************************************************************************* * * © 2016 and later: Unicode, Inc. and others. * License & terms of use: http://www.unicode.org/copyright.html#License * ******************************************************************************* ******************************************************************************* * * Copyright (C) 2002-2011, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* */ #include "unicode/uchriter.h" #include "unicode/schriter.h" #include "unicode/ustring.h" #include <stdio.h> #include <unicode/brkiter.h> #include <unicode/ustdio.h> #include <stdlib.h> static UFILE *out; using icu::CharacterIterator; using icu::StringCharacterIterator; using icu::UCharCharacterIterator; using icu::UnicodeString; void printUnicodeString(const UnicodeString &s) { u_fprintf(out, "%S", &s); } void printUChar(UChar32 ch) { if(ch < 127) { u_fprintf(out, "%C", (UChar) ch); } else if (ch == CharacterIterator::DONE) { u_fprintf(out, "[CharacterIterator::DONE = 0xFFFF]"); } else { u_fprintf(out, "[%X]", ch); } } class Test { public: void TestUChariter(); void TestStringiter(); }; void Test::TestUChariter() { const char testChars[] = "Now is the time for all good men to come " "to the aid of their country."; UnicodeString testString(testChars,""); const UChar *testText = testString.getTerminatedBuffer(); UCharCharacterIterator iter(testText, u_strlen(testText)); UCharCharacterIterator* test2 = iter.clone(); u_fprintf(out, "testText = %s", testChars); if (iter != *test2 ) { u_fprintf(out, "clone() or equals() failed: Two clones tested unequal\n"); } UnicodeString result1, result2; // getting and comparing the text within the iterators iter.getText(result1); test2->getText(result2); if (result1 != result2) { u_fprintf(out, "iter.getText() != clone.getText()\n"); } u_fprintf(out, "\n"); // Demonstrates seeking forward using the iterator. u_fprintf(out, "Forward = "); UChar c = iter.first(); printUChar(c); // The first char int32_t i = 0; if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) { u_fprintf(out, "startIndex() or endIndex() failed\n"); } // Testing forward iteration... do { if (c == CharacterIterator::DONE && i != u_strlen(testText)) { u_fprintf(out, "Iterator reached end prematurely"); } else if (c != testText[i]) { u_fprintf(out, "Character mismatch at position %d\n" + i); } if (iter.current() != c) { u_fprintf(out, "current() isn't working right"); } if (iter.getIndex() != i) { u_fprintf(out, "getIndex() isn't working right\n"); } if (c != CharacterIterator::DONE) { c = iter.next(); i++; } u_fprintf(out, "|"); printUChar(c); } while (c != CharacterIterator::DONE); delete test2; u_fprintf(out, "\n"); } void Test::TestStringiter() { const char testChars[] = "Now is the time for all good men to come " "to the aid of their country."; UnicodeString testString(testChars,""); const UChar *testText = testString.getTerminatedBuffer(); StringCharacterIterator iter(testText, u_strlen(testText)); StringCharacterIterator* test2 = iter.clone(); if (iter != *test2 ) { u_fprintf(out, "clone() or equals() failed: Two clones tested unequal\n"); } UnicodeString result1, result2; // getting and comparing the text within the iterators iter.getText(result1); test2->getText(result2); if (result1 != result2) { u_fprintf(out, "getText() failed\n"); } u_fprintf(out, "Backwards: "); UChar c = iter.last(); int32_t i = iter.endIndex(); printUChar(c); i--; // already printed out the last char if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) { u_fprintf(out, "startIndex() or endIndex() failed\n"); } // Testing backward iteration over a range... do { if (c == CharacterIterator::DONE) { u_fprintf(out, "Iterator reached end prematurely\n"); } else if (c != testText[i]) { u_fprintf(out, "Character mismatch at position %d\n", i); } if (iter.current() != c) { u_fprintf(out, "current() isn't working right\n"); } if (iter.getIndex() != i) { u_fprintf(out, "getIndex() isn't working right [%d should be %d]\n", iter.getIndex(), i); } if (c != CharacterIterator::DONE) { c = iter.previous(); i--; } u_fprintf(out, "|"); printUChar(c); } while (c != CharacterIterator::DONE); u_fprintf(out, "\n"); delete test2; } /* Creating and using text boundaries */ int main( void ) { UErrorCode status = U_ZERO_ERROR; out = u_finit(stdout, NULL, NULL); u_fprintf(out, "ICU Iteration Sample Program (C++)\n\n"); Test t; u_fprintf(out, "\n"); u_fprintf(out, "Test::TestUCharIter()\n"); t.TestUChariter(); u_fprintf(out, "-----\n"); u_fprintf(out, "Test::TestStringchariter()\n"); t.TestStringiter(); u_fprintf(out, "-----\n"); return 0; }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply