c character conversion functions
Цей підручник охоплює такі функції перетворення символів C ++, як перетворення символу на ціле число або рядок та масив символів на рядок із прикладами коду:
У C ++, оскільки ми розробляємо додатки, що включають багато типів, стає необхідним перетворення з одного типу на інший. Ми вже бачили кілька основних перетворень типу в наших попередніх підручниках.
Ми також спостерігали перетворення рядків та перетворення числових типів у рядки. Окрім функцій перетворення рядків, які ми вже бачили, є кілька функцій, які використовуються для перетворення символу в інші типи даних.
Це функції, які приймають один символ або масив символів, а потім перетворюють їх в інші типи даних.
=> Прочитайте навчальну серію Easy C ++.
Що ви дізнаєтесь:
- Функції перетворення символів на C ++
- Висновок
Функції перетворення символів на C ++
Коли мова йде про перетворення одного символу в ціле число або рядок та перетворення масиву символів у рядок, функції перетворення дещо змінюються від функцій перетворення рядків.
селен із запитаннями на співбесіду c #
У цьому підручнику ми обговоримо наступні перетворення:
- Перетворення символу в ціле число (char в int C ++)
- Перетворення символу в рядок (символ у рядок 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) Використання рядкового потоку
Як вже було видно в навчальному посібнику з функцій перетворення рядків, ми можемо перетворити один символ, представлений як об'єкт рядкового потоку, у ціле число або будь-яке числове значення.
Нижче наведено код для демонстрації цього.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Вихід:
Перетворене значення символу 5: 5
Перетворити символ у рядок - символ у рядок
Існують різні способи, за допомогою яких ми можемо перетворити один символ у рядок.
Давайте обговоримо деякі з цих методів.
# 1) Використання конструктора, наданого рядковим класом.
Прототип функції: рядок s (int n, char x);
Параметри:
n => Розмір генеруваного рядка.
x => Символ, який потрібно перетворити на рядок.
Повернене значення: s tring, отриманий шляхом перетворення символу.
Опис: Конструктор рядкового класу приймає як параметри довжину рядка (n) та один символ, а потім перетворює символ у рядок.
Нижче наведено простий приклад для демонстрації перетворення одного символу в рядок.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Вихід:
Рядок, отриманий перетворенням одного символу: A
Наведене перетворення є простим. Ми викликаємо конструктор рядків і вказуємо довжину рядка (перший параметр) як 1, оскільки ми перетворюємо один символ, а другий параметр - це символ, який потрібно перетворити на рядок (в даному випадку «A»).
# 2) Використання std :: string Operator = And + =
Оператори класу std :: string, = і + = перевантажені для символів. Отже, ми можемо використовувати ці оператори для перетворення одного символу в рядок.
Це демонструється у програмі, показаній нижче.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Вихід:
Рядок, отриманий перетворенням одного символу: CB
У цій програмі ми використовували як перевантажені оператори, =, так і + =. Ми оголосили рядовий об'єкт, а потім призначили йому символ за допомогою оператора =. Далі ми використовуємо оператор + = і призначаємо іншому символу рядковий об'єкт.
Ми бачимо, що вдруге символ фактично об’єднується з уже наявним вмістом у об’єкті рядка.
# 3) Використання різних методів std :: string
Клас std :: string підтримує різні перевантажені методи, за допомогою яких ми можемо передати символ у рядок, що в кінцевому підсумку перетворює символ у рядок.
Деякі з методів класу std :: string:
- відсунути
Прототип функції: void push_back (char c)
Параметри: c => Символ, який слід призначити рядку
Повернене значення: повертається недійсним
Опис: Ця функція перевантажена для символів, і вона призначає символ кінці рядка.
- додати
Прототип функції: рядок і додавання (size_t n, char c)
Параметри:
n => Кількість разів, коли слід додати символ.
c => Символ, який слід додати до рядка.
Повернене значення: Рядок, отриманий шляхом перетворення символу.
Опис: Функція додавання std :: string приймає два аргументи. Перший аргумент - це кількість скопійованих символів у рядок. Другий аргумент - це фактичний символ, який потрібно скопіювати. Таким чином, функція додавання призначить стільки копій символів рядку, як зазначено в першому аргументі.
- призначити
Прототип функції: рядок & призначити (size_t n, char c);
Параметри:
n => Кількість копій символу.
c => Символ, який потрібно скопіювати в рядок.
Повернене значення: Рядок, отриманий шляхом перетворення символу.
Опис: Функція Assign замінює поточний вміст рядка на n (перший аргумент) копій символу (другий аргумент).
- вставити
Прототип функції: рядок & вставка (size_t pos, size_t n, char c);
Параметри:
pos => Позиція, на початку якої слід вставити символи.
n => Кількість копій символу.
c => Символ, який потрібно вставити в рядок.
Повернене значення: Рядок, отриманий шляхом перетворення символу.
Опис: Ця функція вставляє n (другий аргумент) копій символу (третій аргумент) у початкову позицію рядка, вказану pos (перший аргумент).
Далі ми розробимо програму, яка демонструє всі вищезазначені функції класу std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Вихід:
push_back один символ: A
додати один символ: C
призначити один символ: D
вставити один символ: BD
Наведена вище програма демонструє функції push_back, додавання, призначення та вставлення. Вихідні дані відображають результат або рядок, що повертається кожною функцією.
# 4) Використання std :: stringstream
Ми вже обговорювали перетворення числових типів у рядок за допомогою stringstream. Перетворення символу в рядок також слідує тому ж принципу, коли використовується клас потокового рядка.
Даний символ вставляється в потік, а потім вміст записується в рядок.
Пояснимо це за допомогою програми на C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Вихід:
Рядок, отриманий перетворенням одного символу: A
Спочатку ми вставляємо символ в об’єкт потоку, а потім цей буфер записується в об’єкт рядка. Таким чином, результат програми показує вміст рядкового об'єкта, який є одним символом.
Перетворити масив символів на рядок
Клас std :: string має безліч методів, які можуть стати в нагоді під час роботи з масивами символів. Тому доцільно перетворити масиви символів на рядкові об’єкти, а потім використовувати їх, щоб ми могли писати ефективні програми.
Існує два методи перетворення масиву символів у рядок, як показано нижче.
# 1) Використання конструктора рядків
Як уже обговорювалося для перетворення одного символу в рядок, ми можемо використовувати конструктор рядків для перетворення масиву символів у рядок.
Прототип функції: рядок (const char * s);
Параметри: s => символьний масив із нульовим закінченням, який потрібно перетворити на рядок
Повернене значення: string => перетворений рядок
Опис: Цей перевантажений конструктор класу std :: string бере як аргумент масив символів або C-рядок і повертає рядок.
Наступна програма демонструє це перетворення.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Вихід:
Перетворений рядок: Довідка щодо тестування програмного забезпечення
Вищевказана програма досить проста. Все, що потрібно - це лише один виклик конструктору std :: string для перетворення заданого масиву символів у рядок.
# 2) Використання = Перевантажений оператор
Іншим підходом для перетворення масиву символів у об’єкт рядка є використання перевантаженого оператора =. У цьому ми можемо безпосередньо призначити масив символів об’єкту string за допомогою оператора =, і вміст буде передано в рядок.
Наступний приклад це показує.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Вихід:
Перетворений рядок: Довідка щодо тестування програмного забезпечення
Вищевказана програма призначає масив безпосередньо рядковому об'єкту за допомогою оператора =, що призводить до копіювання вмісту символьного масиву до рядкового об'єкта.
Висновок
Ми бачили різні методи перетворення одного символу, а також масивів символів у рядкові об’єкти. Оскільки клас std :: string має безліч функцій, які дозволяють нам ефективно маніпулювати рядками, завжди корисно працювати з символьними даними, перетворюючи їх спочатку в рядки.
Подальше читання = >> Перетворити Char на Int на Java
Подальше читання = >> Перетворити Char на String на Java
Ми також можемо використовувати методи класів для перетворення символьних даних у рядки. При цьому ми спочатку вставляємо дані в потік, а потім записуємо цей буфер у рядовий об’єкт.
У наступних підручниках ми детально обговоримо клас рядкових потоків та інші функції бібліотеки на C ++.
=> Перегляньте тут, щоб побачити A-Z навчальних посібників з C ++.
Рекомендована література
- Функції рядка Python
- Рядок Java із підручником для буфера рядків та побудови рядків
- Класифікація символів та функції перетворення символів C ++
- Функції рядків VBScript: Функції VBScript inStr, Заміна, Середнє та Обрізання
- Підручник з розділення рядків Python
- Підручник з рядків C # - Рядові методи з прикладами коду
- Рядки в C ++ з прикладами
- Бібліотечні функції в C ++