Форматирование и синтаксический анализ — КиберПедия 

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Форматирование и синтаксический анализ

2022-10-29 29
Форматирование и синтаксический анализ 0.00 из 5.00 0 оценок
Заказать работу

Строки

 

Строки CLR

 

Объявление и инициализацию строк можно выполнять различными способами, например:

 

String^ message 1;  // Объявление строковой переменной

message 1 = ""; // Инициализация строки

// Объявление и инициализация пустой строки с использованием

// встроенной константы, а не литерала ""

String^ message2 = System::String::Empty;

// Объявление и инициализация строки

String^ greeting = "Hello World!";   // Инициализация строкой

// или String^ greeting("Hello World!");

String^ input = Console::ReadLine();   // Инициализация вводом

                                  // с клавиатуры

String^ surname = " Петров ";

String ^ name = "Иван";

String ^ name = surname + name; // Инициализация объединением строк

 

Но строки можно также соединять и с символами, однако результат при этом зависит от типа символа.

 

String^ str = L" Значение: ";

char ch = 'Z';

wchar_t wch = L'Z';

String ^ str 1 = str + ch;  // Результат - новая строка L "3начение: 90"

String ^ str 2 = str + wch; // Результат - новая строка L "3начение: Z "

 

Чтобы переменная типа char, инициализированная строковым литералом, добавлялась к строке типа String как подстрока, а не число, можно воспользоваться следующим приемом:

 

char *charstr = "Hello";

String^ sysstr = gcnew String(charstr);

sysstr += ", World!";

System::Console::Write("{0}", sysstr);

delete sysstr;

 

 

Класс System::String

(http://msdn.microsoft.com/ru-ru/library/system.string.aspx)

 

Таблица 3.1. Основные поля, свойства и методы класса S ystem. String

Имя Описание
Поля  
Empty Представляет пустую строку (только для чтения).
Свойства  
Chars[i] Получает символ (объект Char) из указанной позиции (начиная с 0) текущей строки.
Length Возвращает число знаков в текущей строке.
Методы  
Compare(s1,s2); Compare(s1,s2,r); Compare(s1,i1,s2,i2,L); Compare(s1,i1,s2,i2,L,r); Сравнивает две указанные строки (в порядке сортировки) с учетом или без учета регистра (r типа bool) и возвращает целое число (Int32): – отрицательное число, если s1 < s2; – ноль, если s1 = s2; – положительное число, если s1 > s2. Сравнивает подстроки двух указанных строк, начинаю-щиеся с указанных позиций (соответственно с i1 и i2) и имеющие длину не более L.
CompareOrdinal(s1,s2); CompareOrdinal(s1,i1,s2, i2,L); Сравнивает две указанные строки (в соответствии с кодами входящих в них символов) и возвращает целое число (Int32). Сравнивает подстроки двух указанных строк, начинаю-щиеся с указанных позиций (соответственно с i1 и i2) и имеющие длину не более L.
CompareTo(s 2); Сравнивает текущую строку (s1) с заданной строкой (s2) (в порядке сортировки) и возвращает целое число (Int32): – отрицательное число, если  s1  предшествует  s2; – ноль, если s1  и  s2  имеют одну и ту же позицию в порядке сортировки; – положительное число, если  s1  стоит после  s2.
Concat(v); Concat(v1,v2); Concat(v1,v2,v3); Concat(v1,v2,v3,v4); Concat(arrV[]); Concat(s1,s2); Concat(s1,s2,s3); Concat(s1,s2,s3,s4); Concat(arrS[]); Создает строковое представление указанного объекта (V). Сцепляет строковые представления двух, трех или четырех указанных объектов (v1, v2, v3, v4), либо элементов в массиве объектов (arrV).   Сцепляет две, три или четыре указанные строки (s1, s2, s3, s4), либо элементы массива строк (arrS).
Contains(s2); Выполняет проверку вхождения строки s2 в текущую строку s1 и возвращает логическое значение (true или false).
Copy(s); Создает новую строку, имеющую то же значение, что и указанная строка s.
CopyTo(i1,arrCh[],i2,L); Копирует заданное число символов (L) из текущей строки (s), начиная с указанной позиции (i1), и вставляет в массив символов (arrCh), начиная с i2-элемента (заменяя их).
EndsWith(s2); Определяет, совпадает ли конец текущей строки (s1) с указанной строкой (s2) и возвращает логическое значение (true или false).
Format(sf,v1); Format(sf,v1,v2); Format(sf,v1,v2,v3); Format(sf,arrV[]); Заменяет один или более элементов формата (см. п.4.2) в указанной строке (sf) строковым представлением одного, двух или трех указанных объектов (v1, v2, v3), либо элементов массива (arrV).
GetEnumerator; Извлекает объект, который может выполнять итерацию отдельных знаков данной строки.
IndexOf(ch); IndexOf(s2); IndexOf(ch,i); IndexOf(s2,i); IndexOf(ch,i,L); IndexOf(s2,i,L); Возвращает индекс (с отсчетом от нуля) первого вхождения указанного символа Unicode (ch) или строки (s2) в текущей строке (s1). Поиск начинается от начала строки или с указанной позиции (i) строки, при этом проверяется заданное количество позиций (L) (параметры i и L задаются значениями типа Int32).
Insert(i,s 2); Вставляет в текущую строку (s1) подстроку (s2) начиная с указанного индекса (i).
Join(s,arrV[]); Join(s,arrS[]); Join(s,String[],i,L); Сцепляет элементы массива объектов (arrV) или строк (arrS), помещая между ними заданный разделитель (s). Сцепляются L элементов массива, начиная с i-го (параметры i и L задаются значениями типа Int32).
LastIndexOf(ch); LastIndexOf(s2); LastIndexOf(ch,i); LastIndexOf(s2,i); LastIndexOf(ch,i,L); LastIndexOf(s2,i,L); Возвращает индекс (с отсчетом от нуля) последнего вхождения указанного символа Unicode (ch) или строки (s2) в текущей строке (s1). Поиск начинается от конца строки или с указанной позиции (i) строки и выполняется в обратном направлении до начала строки, при этом проверяется заданное количество позиций (L) (параметры i и L задаются значениями типа Int32).
PadLeft(L); PadLeft(L,ch); Дополняет текущую строку слева пробелами или заданными символами (ch) до тех пор, пока длина строки не станет равной L.
PadRight(L); PadRight(L,ch); Дополняет текущую строку справа пробелами или заданными символами (ch) до тех пор, пока длина строки не станет равной L.
Remove(i); Remove(i,L); Удаляет из текущей строки символы, начиная с i-го символа и до конца строки или не более L символов (параметры i и L задаются значениями типа Int32).
Replace(ch1,ch2); Replace(s1,s2); Заменяет в текущей строке все вхождения символа Unicode (ch 1) или подстроки s 1 на символ (ch 2) или подстроку (s 2).
Split (arrCh[]); Split (arrCh[],i); Split (arrCh[],strOpt); Split (arrCh[],i,strOpt); Split (arrS[],strOpt); Split (arrS[],i,strOpt); Возвращает строковый массив, содержащий подстроки те-кущей строки, разделенные элементами заданного масси-ва символов Unicode (arrCh) или строк (arrS). Параметр i указывает максимальное число возвращаемых подстрок. Параметр strOpt может содержать следующие значения: – RemoveEmptyEntries – исключает пустые элементы из возвращаемого массива; – None – включает пустые элементы в возвращаемый массив.
StartsWith(s2); Определяет, совпадает ли начало текущей строки (s1) с указанной строкой (s2) и возвращает логическое значение (true или false).
Substring (i); Substring (i, L); Извлекает подстроку из текущей строки. Подстрока начинается с указанной позиции (i) строки и имеет указанную длину (L).
ToCharArray(); ToCharArray(i,L); Копирует символы текущей строки или ее подстроки в массив символов Unicode. Подстрока задается начальной позицией (i) в текущей строке и своей длиной (L).
ToLower(); ToUpper(); Возвращает текущую строку, представленную соответственно строчными или прописными буквами (т.е. в нижнем или верхнем регистре).
Trim(); Trim(arrCh[]); Удаляет из текущей строки все начальные и конечные пробелы или вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.
TrimEnd(arrCh[]); Удаляет из текущей строки все конечные вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.
TrimStart (arrCh []); Удаляет из текущей строки все начальные вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.

 

Структура System::Char

(http://msdn.microsoft.com/ru-ru/library/system.char.aspx)

 

Таблица 3.3. Основные поля и методы структуры Char.

Имя Описание
Поля  
MaxValue Представляет наибольшее возможное значение типа Char. Это поле является константой.
MinValue Представляет наименьшее возможное значение типа Char. Это поле является константой.
Методы  
CompareTo(ch); Сравнивает текущий символ с заданным символом (ch) (в порядке сортировки) и возвращает целое число (Int32): – отрицательное число, если текущий символ предшествует ch; – ноль, если текущий символ и ch имеют одну и ту же позицию в порядке сортировки; – положительное число, если текущий символ стоит после ch.
GetNumericValue(ch); GetNumericValue(s,i); Преобразует указанный числовой символ Unicode (ch – символьное представление цифры) или такой символ в указанной позиции (i) заданной строки (s) в число двойной точности с плавающей запятой.
GetUnicodeCategory(ch); GetUnicodeCategory(s,i); Относит указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к группе, определенной одним из значений перечисления System.Globalization.UnicodeCategory (возвращая соответствующее строковое значение):   "UppercaseLetter" – буква верхнего регистра; "LowercaseLetter" – буква нижнего регистра; "DecimalDigitNumber" – знак десятичной цифры в диапазоне от 0 до 9; "LetterNumber" – число, представленное буквой вместо десятичной цифры; например, обозначение римской цифры пять – "V"; "SpaceSeparator" – символ пробела; "LineSeparator" – символ, используемый для разделения строк текста; "ParagraphSeparator" – символ, используемый для разделения абзацев; "Control" – управляющий символ кода со значением в Unicode, равным U+007F либо находящемся в диапазоне от U+0000 до U+001F или от U+0080 до U+009F (например, ACK, BEL, CR, FF, LF и VT); "ConnectorPunctuation" – знак пунктуации, являющийся соединителем двух знаков (_); "DashPunctuation" – знак тире или дефиса; "OpenPunctuation" – открывающий символ для одного из парных пунктуационных знаков, таких как круглые, квадратные и фигурные скобки; "ClosePunctuation" – закрывающий символ для одного из парных пунктуационных знаков, таких как круглые, квадратные и фигурные скобки; "InitialQuotePunctuation" – открывающий или начальный знак кавычки («); "FinalQuotePunctuation" – закрывающий или заключительный знак кавычки (»); "OtherPunctuation" – знак пунктуации, который не является соединителем, тире, открывающим или закрывающим знаком пунктуации, начальной или заключительной кавычкой (!@#%&*;:’.,”/?\); "MathSymbol" – математические символы (+=~<>); "CurrencySymbol" – символ денежной единицы ($); "ModifierSymbol" – символ модификатора, который указывает на изменения окружающих его символов (^`); "OtherSymbol" – символ, который не является математическим символом, символом денежной единицы или символом модификатора (№).
IsControl(ch); IsControl(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории управляющих символов (возвращает true или false).
IsDigit(ch); IsDigit(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории десятичных цифр (возвращает true или false).
IsLetter(ch); IsLetter(s,i); Показывает, относится ли указанный знак Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории букв Unicode (возвращает true или false).
IsLetterOrDigit(ch); IsLetterOrDigit(s,i); Показывает, относится ли указанный знак Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории букв или десятичных цифр (возвращает true или false).
IsLower(ch); IsLower(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории букв нижнего регистра (возвращает true или false).
IsNumber(ch); IsNumber(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории цифр (возвращает true или false).
IsPunctuation(ch); IsPunctuation(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории знаков препинания (возвращает true или false).
IsSeparator(ch); IsSeparator(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории знаков-разделителей (возвращает true или false).
IsSymbol(ch); IsSymbol(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории символьных знаков (возвращает true или false).
IsUpper(ch); IsUpper(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории букв верхнего регистра (возвращает true или false).
IsWhiteSpace(ch); IsWhiteSpace(s,i); Показывает, относится ли указанный символ Unicode (ch) или символ в указанной позиции (i) заданной строки (s) к категории пробелов (возвращает true или false).
Parse(s); Преобразует значение указанной строки (s), содержащей один знак или null, в эквивалентный символ Unicode.
ToLower (ch); ToUpper (ch); Преобразует значение символа Unicode (ch) в его эквива-лент соответственно в нижнем или верхнем регистре.
ToString(); ToString(ch); Преобразует значение текущего или указанного символа Unicode (ch) в эквивалентное ему строковое представление.
TryParse(s, ch); Преобразует значение указанной строки (s), содержащей один знак или null, в эквивалентный возвращаемый символ Unicode (ch). Метод возвращает значение true или false, указывающее, успешно ли выполнено преобразование.

 

 

Пример 3.10. Применение методов CompareTo, GetNumericValue, GetUnicodeCategory, IsControl, IsDigit, IsLetter, IsLetterOrDigit, IsLower, IsNumber, IsPunctuation, IsSeparator, IsSymbol, IsUpper, IsWhiteSpace, Parse, ToLower, ToUpper, ToString, TryParse объекта Char.

 

#include "stdafx.h"

using namespace System;

int main(array<System::String^> ^args) {

wchar_t wch;

char chA = 'A';

char ch1 = '1';

String^ st = "G";

String^ str = "Test string";

Console::WriteLine(chA.CompareTo('B'));

                // Вывод: "-1" (значение 'A' меньше чем 'B')

Console::WriteLine(Char::GetNumericValue(ch1)); // Вывод: "1"

Console::WriteLine(Char::GetUnicodeCategory(ch1));

                // Вывод: "DecimalDigitNumber"

Console::WriteLine(Char::GetUnicodeCategory(str, 0));

                // Вывод: "UppercaseLetter"

Console::WriteLine(Char::IsControl('\t'));   // Вывод: "True"

Console::WriteLine(Char::IsDigit(ch1));    // Вывод: "True"

Console::WriteLine(Char::IsLetter(','));  // Вывод: "False"

Console::WriteLine(Char::IsLetterOrDigit(ch1)); // Вывод: "True"

Console::WriteLine(Char::IsLower('u'));    // Вывод: "True"

Console::WriteLine(Char::IsNumber(ch1));   // Вывод: "True"

Console::WriteLine(Char::IsPunctuation('.')); // Вывод: "True"

Console::WriteLine(Char::IsSeparator(str, 4)); // Вывод: "True"

Console::WriteLine(Char::IsSymbol('+'));   // Вывод: "True"

Console::WriteLine(Char::IsUpper('G'));    // Вывод: "True"

Console::WriteLine(Char::IsWhiteSpace(str, 4)); // Вывод: "True"

Console::WriteLine(Char::Parse("S"));      // Вывод: "S"

Console::WriteLine(Char::ToLower(chA));    // Вывод: "a"

Console::WriteLine(Char::ToUpper('m'));    // Вывод: "M"

Console::WriteLine(Char::ToString('x'));   // Вывод: "x"

Console::WriteLine("{0} {1}", Char::TryParse(st, wch), wch);

                                            // Вывод: "True G"

Console::ReadLine();

return 0;

}

 

 

Строки в стиле C

 

Объявление и инициализация строки.

Объявляется строка также как и массив элементов типа char:

 

char st [7];

 

При инициализации строки можно перечислить символы внутри фигурных скобок:

 

char st[7] = {'S', 't', 'r', 'i', 'n', 'g', '\0' };

 

или указать строку внутри двойных кавычек char:

 

st [7] = " String ";

 

Если размер массива при объявлении не указать, то он будет определен автоматически в соответствии с длиной строки

 

char st[] = "String"; // или  char *st("String");

 

Присваивать строку в двойных кавычках можно только при инициализации. Попытка присвоить строку позже приведет к ошибке.

 

char st [7];

st = " String "; // Ошибка!!!

 

Объявление массива строк выглядит так

 

char st[][20] = { "String1", "String2", "String3" };

std::cout << st[0] << std::endl;  // String1

std::cout << st[l] << std::endl;  // String2

std::cout << st[2] << std::endl;  // String3

 

или так:

 

char *st[] = { "Stringl", "String2", "String3" };

std::cout << st[0] << std::endl;  // Strmg1

std::cout << st[1] << std::endl;  // Stnng2

std::cout << st[2] << std::endl; // Stnng3

 

Доступ к символам внутри строки.

Доступ к элементу массива может осуществляться как по индексу (нумерация начинается с нуля), указанному внутри квадратных скобок, так и с использованием адресной арифметики.

 

char st [] = " String ";

std::cout << st[l] << std::endl;      // t

std::cout << *(st + 1) << std::endl; // t

 

Символ можно не только получить таким образом, но и изменить:

 

char st [] = " String ";

st [0] = ' s ';   // Изменение с помощью индекса

*(st + 1) = 'Т';  // Изменение с помощью указателя

std::cout << st << std::endl; // sTring

 

Перебор символов строки.

Выведем все символы строки в прямом и обратном порядке.

 

char st[] = "String";

int len = st:: strlen (st); // Определение длины строки (6)

// Выводим символы в прямом порядке

for (int i = 0; i < len; ++i) {

std::cout << st[i] << std::endl;

}

std:: cout << "-------------------" << std:: endl;

// Выводим символы в обратном порядке

for (int j = len - 1; j >= 0; --j) {

std::cout << st[j] << std::endl;

}

 

Количество символов лучше получать вне цикла или присваивать значение переменной в первом параметре цикла fo r. Например:

 

for (int i = 0, len = std::strlen(st); i < len; ++i) {

 std::cout << st[i] << std::end1;

}

 

Объединение строк.

Для объединения двух строк используется функция streat(). Например:

 

char st 1[40] = "Не стыдно не знать,";

char * st 2(" стыдно не учиться.");

strcat(stl, st2);

cout << stl << endl;

 

Функция streat() возвращает указатель на первый параметр, поэтому последние два оператора предыдущего фрагмента можно заменить одним:

 

cout << strcat(stl, st2) << endl;

 

Пример объединения строки из предыдущего фрагмента с помощью функции strncat().

 

cout << strncat (stl, st 2, 18) << endl;

          // Вывод: Не стыдно не знать, стыдно не учиться

 

Копирование строк.

Копирование строк позволяет выполнять функция str cpу() с двумя параметрами. Например:

 

const size_t LENGTH = 22;

char source[LENGTH] = "Век живи - век учись.";

char destination[LENGTH];

cout << " Целевая строка: " << strcpy(destination, source) << endl;

 

Функция str cpу() копирует строку source в строку destination и возвращает указатель на целевую строку, на экран будет выведено следущее:

 

Else

cout << stl << " больше чем " << st 2 << '.' << endl;

 

Две строки эквивалентны, если они содержат одинаковое количество символов и все соответствующие пары символов идентичны. Поэтому вывод будет следующим:

 

Else

cout << "Первое вхождение \"" << s t 2 << "\" в \"" << st1

   << "\" находится в позиции " << pstr – st1 << endl;

 

Вывод этого фрагмента выглядит следующим образом.

 

Первое вхождение "туман" в "А я еду за туманом..." находится в позиции 11

 

 

Пример 3.11. Поиск в заданной строке количества вхождений указанной подстроки.

 

// Поиск в строке

#include "stdafx.h"

#include <iostream>

using std::cout;

Using std::endl;

int main() {

char* str("Ехал Грека через реку, видит Грека в реке рак.\ n "

         "Сунул Грека руку в реку, рак за руку Грека цап.");

 char* word("Грека");

cout << "Строка, в которой выполняется поиск: " << endl

    << str << endl;

int count(0);          // Количество вхождений word в str

char* pstr(str);       // Указатель на позицию начала поиска

char* found(nullptr);  // Указатель на вхождение word в str

while (true) {

     found = strstr(pstr, word);

     if (!found)

        break;

     ++count;

     pstr = found + strlen (word);  // Установить следующую

        // позицию начала поиска на 1 символ за найденным word

}

cout << "\"" << word << "\" была найдена " << count

    << " раз(а) в строке." << endl;

std::cin.get();

return 0;

}

/* Вывод:

Строка, в которой выполняется поиск:

Ехал Грека через реку, видит Грека в реке рак.

Сунул Грека руку в реку, рак за руку Грека цап.

"Грека" была найдена 4 раз(а) в строке.

*/

 

 

Строки

 

Строки CLR

 

Объявление и инициализацию строк можно выполнять различными способами, например:

 

String^ message 1;  // Объявление строковой переменной

message 1 = ""; // Инициализация строки

// Объявление и инициализация пустой строки с использованием

// встроенной константы, а не литерала ""

String^ message2 = System::String::Empty;

// Объявление и инициализация строки

String^ greeting = "Hello World!";   // Инициализация строкой

// или String^ greeting("Hello World!");

String^ input = Console::ReadLine();   // Инициализация вводом

                                  // с клавиатуры

String^ surname = " Петров ";

String ^ name = "Иван";

String ^ name = surname + name; // Инициализация объединением строк

 

Но строки можно также соединять и с символами, однако результат при этом зависит от типа символа.

 

String^ str = L" Значение: ";

char ch = 'Z';

wchar_t wch = L'Z';

String ^ str 1 = str + ch;  // Результат - новая строка L "3начение: 90"

String ^ str 2 = str + wch; // Результат - новая строка L "3начение: Z "

 

Чтобы переменная типа char, инициализированная строковым литералом, добавлялась к строке типа String как подстрока, а не число, можно воспользоваться следующим приемом:

 

char *charstr = "Hello";

String^ sysstr = gcnew String(charstr);

sysstr += ", World!";

System::Console::Write("{0}", sysstr);

delete sysstr;

 

 

Класс System::String

(http://msdn.microsoft.com/ru-ru/library/system.string.aspx)

 

Таблица 3.1. Основные поля, свойства и методы класса S ystem. String

Имя Описание
Поля  
Empty Представляет пустую строку (только для чтения).
Свойства  
Chars[i] Получает символ (объект Char) из указанной позиции (начиная с 0) текущей строки.
Length Возвращает число знаков в текущей строке.
Методы  
Compare(s1,s2); Compare(s1,s2,r); Compare(s1,i1,s2,i2,L); Compare(s1,i1,s2,i2,L,r); Сравнивает две указанные строки (в порядке сортировки) с учетом или без учета регистра (r типа bool) и возвращает целое число (Int32): – отрицательное число, если s1 < s2; – ноль, если s1 = s2; – положительное число, если s1 > s2. Сравнивает подстроки двух указанных строк, начинаю-щиеся с указанных позиций (соответственно с i1 и i2) и имеющие длину не более L.
CompareOrdinal(s1,s2); CompareOrdinal(s1,i1,s2, i2,L); Сравнивает две указанные строки (в соответствии с кодами входящих в них символов) и возвращает целое число (Int32). Сравнивает подстроки двух указанных строк, начинаю-щиеся с указанных позиций (соответственно с i1 и i2) и имеющие длину не более L.
CompareTo(s 2); Сравнивает текущую строку (s1) с заданной строкой (s2) (в порядке сортировки) и возвращает целое число (Int32): – отрицательное число, если  s1  предшествует  s2; – ноль, если s1  и  s2  имеют одну и ту же позицию в порядке сортировки; – положительное число, если  s1  стоит после  s2.
Concat(v); Concat(v1,v2); Concat(v1,v2,v3); Concat(v1,v2,v3,v4); Concat(arrV[]); Concat(s1,s2); Concat(s1,s2,s3); Concat(s1,s2,s3,s4); Concat(arrS[]); Создает строковое представление указанного объекта (V). Сцепляет строковые представления двух, трех или четырех указанных объектов (v1, v2, v3, v4), либо элементов в массиве объектов (arrV).   Сцепляет две, три или четыре указанные строки (s1, s2, s3, s4), либо элементы массива строк (arrS).
Contains(s2); Выполняет проверку вхождения строки s2 в текущую строку s1 и возвращает логическое значение (true или false).
Copy(s); Создает новую строку, имеющую то же значение, что и указанная строка s.
CopyTo(i1,arrCh[],i2,L); Копирует заданное число символов (L) из текущей строки (s), начиная с указанной позиции (i1), и вставляет в массив символов (arrCh), начиная с i2-элемента (заменяя их).
EndsWith(s2); Определяет, совпадает ли конец текущей строки (s1) с указанной строкой (s2) и возвращает логическое значение (true или false).
Format(sf,v1); Format(sf,v1,v2); Format(sf,v1,v2,v3); Format(sf,arrV[]); Заменяет один или более элементов формата (см. п.4.2) в указанной строке (sf) строковым представлением одного, двух или трех указанных объектов (v1, v2, v3), либо элементов массива (arrV).
GetEnumerator; Извлекает объект, который может выполнять итерацию отдельных знаков данной строки.
IndexOf(ch); IndexOf(s2); IndexOf(ch,i); IndexOf(s2,i); IndexOf(ch,i,L); IndexOf(s2,i,L); Возвращает индекс (с отсчетом от нуля) первого вхождения указанного символа Unicode (ch) или строки (s2) в текущей строке (s1). Поиск начинается от начала строки или с указанной позиции (i) строки, при этом проверяется заданное количество позиций (L) (параметры i и L задаются значениями типа Int32).
Insert(i,s 2); Вставляет в текущую строку (s1) подстроку (s2) начиная с указанного индекса (i).
Join(s,arrV[]); Join(s,arrS[]); Join(s,String[],i,L); Сцепляет элементы массива объектов (arrV) или строк (arrS), помещая между ними заданный разделитель (s). Сцепляются L элементов массива, начиная с i-го (параметры i и L задаются значениями типа Int32).
LastIndexOf(ch); LastIndexOf(s2); LastIndexOf(ch,i); LastIndexOf(s2,i); LastIndexOf(ch,i,L); LastIndexOf(s2,i,L); Возвращает индекс (с отсчетом от нуля) последнего вхождения указанного символа Unicode (ch) или строки (s2) в текущей строке (s1). Поиск начинается от конца строки или с указанной позиции (i) строки и выполняется в обратном направлении до начала строки, при этом проверяется заданное количество позиций (L) (параметры i и L задаются значениями типа Int32).
PadLeft(L); PadLeft(L,ch); Дополняет текущую строку слева пробелами или заданными символами (ch) до тех пор, пока длина строки не станет равной L.
PadRight(L); PadRight(L,ch); Дополняет текущую строку справа пробелами или заданными символами (ch) до тех пор, пока длина строки не станет равной L.
Remove(i); Remove(i,L); Удаляет из текущей строки символы, начиная с i-го символа и до конца строки или не более L символов (параметры i и L задаются значениями типа Int32).
Replace(ch1,ch2); Replace(s1,s2); Заменяет в текущей строке все вхождения символа Unicode (ch 1) или подстроки s 1 на символ (ch 2) или подстроку (s 2).
Split (arrCh[]); Split (arrCh[],i); Split (arrCh[],strOpt); Split (arrCh[],i,strOpt); Split (arrS[],strOpt); Split (arrS[],i,strOpt); Возвращает строковый массив, содержащий подстроки те-кущей строки, разделенные элементами заданного масси-ва символов Unicode (arrCh) или строк (arrS). Параметр i указывает максимальное число возвращаемых подстрок. Параметр strOpt может содержать следующие значения: – RemoveEmptyEntries – исключает пустые элементы из возвращаемого массива; – None – включает пустые элементы в возвращаемый массив.
StartsWith(s2); Определяет, совпадает ли начало текущей строки (s1) с указанной строкой (s2) и возвращает логическое значение (true или false).
Substring (i); Substring (i, L); Извлекает подстроку из текущей строки. Подстрока начинается с указанной позиции (i) строки и имеет указанную длину (L).
ToCharArray(); ToCharArray(i,L); Копирует символы текущей строки или ее подстроки в массив символов Unicode. Подстрока задается начальной позицией (i) в текущей строке и своей длиной (L).
ToLower(); ToUpper(); Возвращает текущую строку, представленную соответственно строчными или прописными буквами (т.е. в нижнем или верхнем регистре).
Trim(); Trim(arrCh[]); Удаляет из текущей строки все начальные и конечные пробелы или вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.
TrimEnd(arrCh[]); Удаляет из текущей строки все конечные вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.
TrimStart (arrCh []); Удаляет из текущей строки все начальные вхождения любых символов из заданного массива (arrCh). Если указанный массив пустой, то удаляются пробелы.

 

Форматирование и синтаксический анализ

Пример 3.1. Использование метода Format для вывода результатов вычислений.

 

#include "stdafx.h"

using namespace System;

int main(array<System::String^> ^args) {

// Ввод по запросу

Console::Write("Введите целое число: ");

String^ input = Console::ReadLine();

// Преобразование введенной строки в целое число

int j = Int32::Parse(input);

// Вывод отдельных строк в каждой итерации цикла

String^ s;

for (int i = 0; i < 10; i++) {

   // Простейшее форматирование без выравнивания.

   s = String::Format("{0} * {1} = {2}", i+1, j, (i+1)*j);

   Console::WriteLine(s);

}

Console::ReadLine();

return 0;

}

/* Вывод:

Введите целое число: 7

1 * 7 = 7

2 * 7 = 14

3 * 7 = 21

4 * 7 = 28

5 * 7 = 35

6 * 7 = 42

7 * 7 = 49

8 * 7 = 56

9 * 7 = 63

10 * 7 = 70

*/

 

В предыдущем примере строку кода, отвечающую за преобразование введенной строки в целое число, можно заменить следующим фрагментом:

 

int j;

System::Int32.TryParse(input, j);

 

Пример 3.2. Поиск пробелов или символов пунктуации в строке (с помощью методов IsWhiteSpace и IsPunctuation класса System::Char), чтобы определить, сколько слов содержится в строке. При этом используются свойства Length и Chars, а также метод Trim класса System:: String.

 

#include "stdafx.h"

using namespace System;

int main(array<System::String^> ^args) {

String^ s1 = "Эта строка состоит из одного предложения.";

int nWords = 0;

s1 = s1->Trim();

for (int i = 0; i < s1->Length; i++)

   if (Char::IsPunctuation(s1[i]) | Char::IsWhiteSpace(s1[i]))

      nWords++;

Console::WriteLine("Предложение:\n \"{0}\"\nсодержит {1} слов.",

                  s1, nWords);

Console::ReadLine();

return 0;

}

// Вывод:

// Предложение

// "Эта строка состоит из одного предложения."

// содержит 6 слов.

 


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.264 с.