|
Программирование >> Элементы языков с и с++
Точка с запятой обязательна. Для ввода нескольких вариантов данных в этой проверочной программе потребовалось ввести так называемое защкливаиие: поставить оператор while, который обеспечивает зацикливание за счет запроса ввода символа, либо для продолжения ввода другого варианта данных, либо для выхода из участка проверки. Но на первом участке удобно проводить проверку на продолжение ввода вариантов данных не в начале участка, а в конце, чтобы первый вариант данных вводился без проверки. Иначе пошел бы запрос на ввод символа для проверки на продолжение ввода: программа ожидала бы ввода, на экране бы мигал один курсор, и пользователю было бы непонятно, что же надо дальше делать. t C:VWINOOWS\systein32\cmd.exe fcnter int п for sprintf О.. .>10 inter float IK for sprintfO >10.2 Inter strina for sprintfO. > =1в 10.208000 ontinue - Enter, exit - Ctrl*z >Z -nter string for strcpyO > iiert opied string=qMert l ntinue - Enter, exit - Ctrl*3 >Z Inter strinyl for strcnpO >asdf inter string2 for strcnpO >asdf jtrcnps ualue=e Stringls lengtb=4 stringl = string2 ontinue - enter, exit - Ctrl*z >Z rnter stringl for strcatO >1234 Inter string2 for strcatO >5678 treats ualue=12345678 ontinue - enter, exit - Ctrl*z >Z .1Я продолжения нажните любую клавииу Рис. П3.1. Результат работы программы листинга П3.1 Поясним немного, что сделала функция sprintf (). Для ее проверки мы ввели два числа- одно в формате int, другое в формате float и строку (в формате s), чтобы показать, что sprintf () их обработает по их форматам (в управляющей строке функции мы задали эти форматы) и соберет в единую строку, включив в нее и символы, которые находились между Тип wcharjt - расширенные символы Unicode Расширенный символ - это двухбайтный код символа для кодирования символов в различных языках. Размера длины кода символа хватает, чтобы закодировать символы в любом языке, включая разные технические символы (в отличие от однобайтового кода таблицы ASCII, который не обеспечивал одновременного кодирования символов всех языков). Новая система кодирования стала называться Unicode. Кодирование этими символами относится к типу wchart. Строка символов представляет собой массив wchar t[], а указателем на такую строку (или начало массива) является указатель wchart*. Любой ASCII-символ можно представить в расширенной кодировке, добавив к нему слева символ L. Например, L \о - это признак конца строки в новой кодировке (NULL-сим вол). Таким же образом можно представить любую ASCII-строку в новой кодировке, предваряя ее символом l (от Large - широкий) (например, L Hello ). Основные стандартные функции для работы со строками типа wcharjt Эти функции по своим действиям точно такие же, что и им соответствующие функции для строк типа char, за тем исключением, что их функциональность скорректирована с таким учетом, что символ в строке теперь является рас- полями, задающими форматы (т. е. между полями, начинающимися со знака % и оканчивающимися одним из символов форматирования: d, f, s,...). Для функции StrcmpO мы вывели значение, которое она возвращает, чтобы читатель мог удостовериться, что это есть разность между первыми не сравнившимися кодами символов. Попробуйте определить, какие символы первыми не сравнились, найдите их коды. Это можно сделать, воспользовавшись стандартной функцией char (имя символа), которая возвращает код символа, указанного у нее в аргументе (например, int a=char (а) ). Результат работы проверочной программы приведен на рис. П3.1, ширенным , т. е. кодируется двумя байтами. К именам этих функций добавлен символ w (не всегда он первый) и скорректирована структура параметрической части функций. В листинге П3.2 приводится совершенно аналогичный строке типа char пример. Читателю предлагается сравнить этот пример программы с его аналогом для char и убедиться, что ничего особенного в работе со строками Unicode нет. Результат работы программы показан на рис. П3.2. C:\WINDOWSUystem32\cmd.exeJ г sprintfO >10 for sprintfO >10.2 or sprintfO. > =1И 10.200000 er, exit - ? >? or StrcpyO > V exit - ? >? gl for StrcmpO >asdf g2 for StrcmpO >asd string2 enter, exit - ? >? gl for StrcatO >1234 g2 for StrcatO >5678 lue=12345678 enter, exit - ? >? ения нажмите любую клавишу Рис. П3.2. Результаты работы со строками Unicode I Листинг П3.2 I 3 wchar t.cpp : Defines the entry point for the console application. 3. char-string.cpp : Defines the entry point for the console application. #include stdafx.h
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |