У меня есть программа на C, которая в настоящее время читается в китайском тексте и хранит их как type wchar_t
. То, что я хочу сделать, - это найти конкретный символ в тексте, но я не уверен, как обращаться к символу в коде.Как обратиться к китайскому символу в коде C
я принципиально хочу сказать:
wchar_t character;
if (character == 个) {
return 1;
}
else return 0;
Некоторые логика была опущена, очевидно. Как я буду заниматься такой логикой на китайском языке в C?
Редактировать: Получил его на работу. Этот код компилируется с -std = c99 и печатает символ «个».
1 #include <locale.h>
2 #include <stdio.h>
3 #include <wchar.h>
4
5
6 int main() {
7 wchar_t test[] = L"\u4E2A";
8 setlocale(LC_ALL, "");
9 printf("%ls", test);
10 }
Каждый символ имеет уникальный код в используемой кодировке, поэтому вам необходимо предоставить этот код, например ascii 'if (character == '3')' и 'if (character == 51)' эквивалентны, потому что ' - десятичный код ascii для символа '' 3''. –
[Редактирование] (http://stackoverflow.com/revisions/29724599/3) уже указывало на ** ** ** ** ** ** ** разницу, которую вы должны применять в псевдокоде. Дополнительно: обратите внимание на согласованность ваших возвращаемых значений. Если 'false' доступен, и вы [с помощью stdbool.h] (http://stackoverflow.com/questions/4767923/c99-boolean-data-type), пометьте свой вопрос [c99] (http: // stackoverflow. com/questions/tagged/c99) ... либо 0/1, либо false/true, микс просто смущает * [(уже очень запутанный)] (http://www.joelonsoftware.com/articles/Unicode.html) * пейзаж юникода дальше ...! – HostileFork
Спасибо, я исправил несоответствие. Это была моя вина быть ленивой на псевдокоде и переходить из C++. Теперь я посмотрю параметры юникода. –