C++. Работа со строками. Класс System.String




Работа со строками. Класс System.String


Содержание


Поиск на других ресурсах:

Ответы

Класс System.String представляет текст как последовательность символов Unicode.

1. Как инициализировать переменную типа String?

String ^s1 = "873"; // s1 = "873"


2. Как очистить строку типа String?
String ^s1 = "Hello!";
String ^s2;
s2 = s1;          // s2 = "Hello!"
s2 = s1->Empty;   // s2 = ""


3. Как определить равны ли две строки типа String между собой?
String ^s1 = "Hello!";
String ^s2 = "Hello!";
int res;
if (s1 == s2) res = 1;
else res = 0;


4. Как сравнить две строки типа String в лексикографическом порядке?

В этом случае можно использовать метод Compare(). Метод возвращает -1, 0 или 1.

В приведенном примере видно результат работы метода.

String ^s1 = "Hello!";

String ^s2 = "Hello";
int res;
res = s1->Compare(s1,s2); // res =  1
res = s2->Compare(s2,s1); // res = -1
res = s2->Compare(s1,s2); // res =  1
s2 = s1;
res = s1->Compare(s1,s2); // res = 0
res = s1->Compare(s2,s1); // res = 0






5. Как соединить две строки типа String?

Способ №1 — функция Concat().

String ^s1 = "Hello ";
String ^s2 = "world!";
String ^s3;
s3 = s1->Concat(s1,s2); // s3 = "Hello world!"

Способ №2. Оператор «+«.

String ^s1 = "Hello ";
String ^s2 = "world!";
String ^s3;
s3 = s1 + s2;  // s3 = "Hello world!"


6. Как скопировать одну строку типа String в другую?
String ^s1 = "My String";
String ^s2;    
s2 = s1;     // s2 = "My String"


7. Копирование строк типа String с использованием метода Copy().
String ^s1 = "MyString ";
String ^s2;
s2 = s1->Copy(s1);    // s2 = "My String"


8. Вставка подстроки начиная с заданного индекса. Функция Insert().

Для вставки подстроки используется функция Insert(). Функция принимает два параметра. Первый параметр – позиция индекса в строке, из которой делается вставка (начинается с 0). Второй параметр – текст самой строки.

String ^s1 = "123789";
String ^s2;
s2 = s1->Insert(3, "456"); // s2 = "123456789"
s1 = "123789";
s2 = s1->Insert(0, "456"); // s2 = "456123789"

// ошибка компиляции с сообщением:
// "Specified argument was out of the range of valid values"
// "Parameter name: startIndex"
// s2 = s1->Insert(19, "456");

Позиция индекса в функции Insert() начинается с 0.


9. Поиск и возвращение индекса первого вхождения подстроки в данную строку.

Реализуется функцией IndexOf(). Если найдена подстрока в строке, то функция возвращает позицию первого вхождения. Иначе случае функция возвращает -1.

Функция имеет перегруженные варианты реализации.

String ^s1 = "Hello world!";
int index;
index = s1->IndexOf("wor"); // index = 6
index = s1->IndexOf("ab"); // index = -1 => не нашло подстроку "ab" в строке "Hello world!"

index = s1->IndexOf("wor",7); // index = -1 - поиск из позиции 7
index = s1->IndexOf("wor",0); // index = 6 - поиск из позиции 0

// поиск идет от заданного индекса (3)
// и проверяется заданное количество символов (5)
index = s1->IndexOf("wo",3,5); // index = 6


10. Поиск и возвращение индекса последнего вхождения подстроки в данную строку функцией LastIndexOf().
String ^s1 = "text-text-text";
int index;
index = s1->LastIndexOf("text"); // index = 10


11. Как определить длину строки типа String?

Для определения длины строки типа String используется свойство Length.

String ^s1 = "abcdef";
int len;
len = s1->Length; // len = 6
s1 = "";
len = s1->Length; // len = 0


12. Создание строки заданной ширины. Демонстрация функций PadLeft() и PadRight().

Функции PadLeft() и PadRight() используются для создания форматированной строки, в которой позиции справа или слева заполняются пробелами.

String ^s1 = "abc";
String ^s2;
s2 = s1->PadLeft(5); // s2 = " abc"
s2 = s1->PadLeft(2); // s2 = "abc"
s2 = s1->PadLeft(9); // s2 = "     abc"

// ошибка "Non-negative number required."
// s2 = s1->PadLeft(-2);
s2 = s1->PadRight(3); // s2 = "abc"
s2 = s1->PadRight(8); // s2 = "abc     "


13. Удаление заданного количества символов из строки функцией Remove().
String ^s1 = "0123456789";
String ^s2;
s2 = s1->Remove(3,2); // s2 = "01256789"


14. Замена всех символов в строке. Функция Replace().
String ^s1 = "0123456789";
String ^s2;
s2 = s1->Replace(s1,"22"); // s2 = "22"


15. Как в строке выделить подстроку. Функция Substring().
String ^s1 = "Automobile";
String ^s2;
// вариант № 1 - выделяет подстроку с заданной
// позиции до конца строки
s2 = s1->Substring(4); // s2 = "mobile"

// вариант № 2 - выделяет подстроку с заданной
// позиции (параметр 1) в заданном количестве символов (параметр 2)
s2 = s1->Substring(0,4); // s2 = "Auto"


16. Преобразование числовой строки в 32-битное целое число. Функция Parse().
// String => int
int i;
String ^s1 = "280";
i = i.Parse(s1);    // i = 280
i = i.Parse("-32"); // i = -32


17. Преобразование целого числа в строку. Функция ToString().
// int => String
int i;
String ^s1;
i = 350;
s1 = i.ToString(); // s1 = 350


18. Преобразование строки в соответствующее вещественное число (с плавающей запятой).
// String => double
double x;
String ^s1;
s1 = "12,87";
x = x.Parse(s1); // x = 12.87


19. Преобразование соответствующего вещественного числа в строку.
// double => String
double x;
String ^s1;
x = -3.568;
s1 = x.ToString(); // s1 = "-3.568


20. Перевод значения переменной логического типа в строку.
// String => bool
bool b;
String ^s1;
s1 = "true";
b = b.Parse(s1); // b = True


Связанные темы