Функции преобразования символов в С++

Функции преобразования символовПри разработке приложения, использующего множество типов, возникает необходимость преобразования одного типа в другой. Мы уже показывали вам несколько основных преобразований типов в наших предыдущих статьях.

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

Это функции, которые принимают один символ или массив символов, а затем преобразуют их в другие типы данных.

Функции преобразования символов

Когда дело доходит до преобразования одного символа в целое число или строку и преобразования массива символов в строку, функции преобразования немного отличаются от функций преобразования строк.

В этой статье мы обсудим следующие преобразования:

  • Преобразование символа в целое число (char в int C++)
  • Преобразование символа в строку (char в строку C++)
  • Преобразование массива символов в строку

Первые два преобразования имеют дело с одним символом, а последнее преобразование включает в себя массив символов.

Преобразование символа в целое — char в int

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

1) По кастингу

Мы можем использовать операцию приведения для преобразования одного символа в его целочисленный эквивалент. В этом случае будет отображаться ASCII-эквивалент символа.

Рассмотрим следующее преобразование:

char a = ‘A’;
int num = (int) a;

В этом случае ‘num’ будет иметь значение 65, которое является эквивалентом ASCII символа ‘A’.

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

char a = ‘2’;
int num = a-48;

48 — это значение ASCII, равное 0. Вторая строка a-48 преобразует char a в его эквивалент ASCII, а затем вычитает его из 48 (50-48), что приводит к целочисленному значению 2.

2) Использование строкового потока

Как уже было показано в статье по функциям преобразования строк, мы можем преобразовать один символ, представленный в виде объекта stringstream, в целое число или любое числовое значение.

Читать также:  Логические операторы в языке программирования Паскаль

Ниже приведен код, демонстрирующий это:

Вывод данных:

Converted value of character 5 :5

Преобразование символа в строку

Существуют различные способы, с помощью которых мы можем преобразовать один символ в строку.

Давайте обсудим некоторые из этих методов.

1) Использование конструктора, предоставленного классом String

Прототип функции: string s(int n, char x);;

Параметры:
n=> Размер генерируемой строки.
x=> Символ, который нужно преобразовать в строку.

Возвращаемое значение: строка, полученная преобразованием символа.

Описание: Конструктор класса string принимает длину строки (n) и один символ в качестве параметров, а затем преобразует символ в строку.

Ниже приведен простой пример, демонстрирующий преобразование одного символа в строку:

Вывод данных:

The string obtained by converting single character: A

Приведенное выше преобразование является простым. Мы вызываем конструктор строки и указываем длину строки (первый параметр) как 1, поскольку мы преобразуем один символ, а второй параметр — это символ, который нужно преобразовать в строку (в данном случае «A»).

2) Использование оператора std::string = и +=

Мы можем использовать эти операторы для преобразования одного символа в строку.

Это демонстрируется в программе, показанной ниже:

Вывод данных:

The string obtained by converting single character : CB

В этой программе мы использовали оба перегруженных оператора = и +=. Мы объявили строковый объект, а затем присвоили ему символ с помощью оператора =. Затем мы используем оператор += и назначаем другой символ строковому объекту.

Мы видим, что во второй раз символ фактически объединяется с уже существующим содержимым в строковом объекте.

3) Использование различных методов std::string

Класс std::string поддерживает различные перегруженные методы, с помощью которых мы можем передать символ в строку, которая в конечном итоге преобразует символ в строку.

Некоторые из методов класса std::string:

  • push_back

Прототип функции: void push_back (char c)

Параметры: c=> Символ, назначаемый строке

Возвращаемое значение: возвращает void

Описание: Эта функция перегружена для работы с символами и присваивает символ в конец строки.

  • append

Читать также:  Стандартная библиотека шаблонов (STL): краткое введение

Прототип функции: string& append (size_t n, char c)

Параметры:
n=> Количество раз, когда символ должен быть добавлен.
c=> Символ, который должен быть добавлен к строке.

Возвращаемое значение: строка, полученная преобразованием символа.

Описание: Функция добавления std::string принимает два аргумента. Первый аргумент — это количество раз, которое символ должен быть скопирован в строку. Второй аргумент — это фактически копируемый символ. Таким образом, функция добавления присвоит строке столько копий символа, сколько указано в первом аргументе.

  • assign

Прототип функции: string& assign (size_t n, char c);

Параметры:
n=> Количество копий символа.
c=> Символ, который нужно скопировать в строку.

Возвращаемое значение: строка, полученная преобразованием символа.

Описание: Функция Assign заменяет содержимое текущей строки n (первый аргумент) копиями символа (второй аргумент).

  • insert

Прототип функции: string& insert (size_t pos, size_t n, char c);

Параметры:
pos=> Позиция, в начале которой должны быть вставлены символы.
n=> ​​Количество копий персонажа.
c=> Символ, который нужно вставить в строку.

Возвращаемое значение: строка, полученная преобразованием символа.

Описание: Эта функция вставляет n (второй аргумент) копий символа (третий аргумент) в начальную позицию строки, указанной pos (первый аргумент).

Далее мы разработаем программу, которая демонстрирует все вышеперечисленные функции класса std::string:

Вывод данных:

push_back single character: A
append single character: C
assign single character : D
insert single character: BD

Вышеприведенная программа демонстрирует функции push_back, append, assign и insert. Вывод показывает результат или строку, возвращаемую каждой функцией.

4) Использование std::stringstream

Мы уже обсуждали преобразование числовых типов в строку с помощью stringstream. Преобразование символа в строку также следует тому же принципу, когда используется класс stringstream.

Данный символ вставляется в поток, а затем содержимое записывается в строку.

Давайте проясним это, используя программу на C++:

Вывод данных:

The string obtained by converting a single character: A

Сначала мы вставляем символ в объект потока, а затем этот буфер записывается в объект строки. Таким образом, вывод программы показывает содержимое строкового объекта, который является одним символом.

Читать также:  Инструкция по выбору (CASE-of-ELSE) в языке Паскаль

Преобразование массива символов в строку

Класс std::string имеет множество методов, которые могут пригодиться при работе с символьными массивами. Следовательно, рекомендуется преобразовывать массивы символов в строковые объекты, а затем использовать их, чтобы мы могли писать эффективные программы.

Существует два метода преобразования массива символов в строку, как показано ниже:

1) Использование конструктора строк

Как уже обсуждалось для преобразования одного символа в строку, мы можем использовать конструктор строк для преобразования массива символов в строку.

Прототип функции: string (const char* s);

Параметры: s=> массив символов с завершающим нулем для преобразования в строку

Возвращаемое значение: string=> преобразованная строка

Описание: Этот перегруженный конструктор класса std::string принимает массив символов или C-строку в качестве аргумента и возвращает строку.

Следующая программа демонстрирует это преобразование:

Вывод данных:

Converted string: Monitor Bank Ru

Вышеупомянутая программа довольно проста. Все, что требуется, — это всего один вызов конструктора std::string для преобразования заданного массива символов в строку.

2) Использование =

Другой подход к преобразованию массива символов в строковый объект заключается в использовании перегруженного оператора =. Здесь мы можем напрямую присвоить массив символов строковому объекту, используя оператор =, и содержимое будет передано в строку.

Следующий пример показывает это:

Вывод данных:

Converted string: Monitor Bank Ru

Вышеприведенная программа присваивает массив непосредственно строковому объекту, используя оператор =, что приводит к копированию содержимого массива символов в строковый объект.

Итог

Мы показали вам различные методы для преобразования одного символа, а также массивов символов в строковые объекты. Так как класс std::string имеет множество функций, позволяющих нам эффективно манипулировать строками, всегда полезно работать с символьными данными, предварительно преобразовав их в строки.

Мы также можем использовать методы класса для преобразования символьных данных в строки. При этом мы сначала вставляем данные в поток, а затем записываем этот буфер в строковый объект.

В нашей следующей статье мы подробно обсудим класс stringstream и его применение в C++.

С Уважением, МониторБанк

Добавить комментарий