|
Программирование >> Элементы языков с и с++
□ string(const wchar t *value, int Startlndex, int length); Здесь происходит выделение из строки Unicode подстроки длиной length с началом на символе startlndex. Например: string s=gcnew String(Ь 2-я форма конструктора ,О,9); Результат: 1-я форма □ string(const char *value); Здесь обрабатывается обычная строка с нулевым признаком конца и выдается значение нового типа - типа string. Например: string s=gcnew String ( 3-я форма конструктора ); Или: string а= 3-я форма конструктора ; String s=gcnew String (а. c str ()) ; Результат: 3-я форма конструктора В последнем примере переменная а имеет тип string. Это совсем не тип String, а другой ТИП, другой класс (из пространства std). Переменная а преобразуется внутри конструктора с помощью метода cstrO в переменную типа char*, которая уже подходит конструктору. Посмотрим, какие операции над строками типа string можно выполнять (часть операций рассмотрена также в главе И на примерах, показанных влистинге 11.1). □ Пример 1: string s; String а = gcnew String( abc ); String b = def ; same as gcnew form Object с = gcnew String( ghi ); s=a+b+c; Результатом выполнения этих операторов будет: s = abcdefghi . Можно к переменной добавлять литерал (например, а=а + zzz ;) □ Пример 2: string s; String а = gcnew String ( abc ) ; wchar t b[2]; Приложение 3. Основные строковые типы данных, принятые в Visual С++ 2008 597 b[0]=a[2]; b[l]=L\0; добавили признак конца строки s=gcnew String(b); Здесь показано, что из строки string можно извлекать отдельные символы как элементы массива. Это, собственно, можно было делать и в строке типа char. В данном примере добавлен признак конца в новую строку ь, первым элементом которой стал третий элемент исходной строки, а признака конца строки после объявления ь не было. Поэтому если не добавить признак конца строки, то после 1-го элемента система начнет выдавать все, что будет следовать за первым элементом, пока не найдет среди мусора символ признака конца или не остановится стандартным способом. После добавления признака конца строка ь превратилась в полноценный массив типа wchart. Но нам надо вывести на экран значение ь. Мы хотим применить конструктор string (), у которого параметром может быть только указатель на переменную типа wchart. Известно, что имя массива как раз является указателем на его первый элемент. Поэтому можно записать string (Ь). □ Пример 3: String s; String а = gcnew String ( abc ) ; s=a+l; Результатом станет: s = abci □ Пример 4: string s; String a = gcnew String ( abc ) ; s=a+a; Результатом станет: s = аЬс97 (т. е. к строке добавлен код символа). □ Пример 5: String s; String а = gcnew String ( abc ) ; s=a+3.1; Результатом станет: s = abc3.l . □ Пример 6: string s; , String a = abc ; String b = def ; Можно писать: if(а != Ь) {выдать сообщение) В классе string можно таким образом сравнивать две строки. □ Пример 7: String ~п; if (п == nullptr) MessageBox::Show( п is empty ); Если объявили переменную, но не придали ей значение, то возможен такой результат при проверке переменной на нулевой указатель. Если переменной присвоить значение (пусто), то указатель п уже не будет равен nullptr.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |