Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Оснащения врачебно-сестринской бригады.
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2022-10-29 | 29 |
5.00
из
|
Заказать работу |
|
|
Строки
Строки 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!