Зміна порядку символів рядка На зворотній

Функції CharToOem

Функції strupr, _strupr

Функції strlwr, _strlwr

ПЕРЕТВОРЕННЯ РЯДКІВ

Елементи символьних рядків можуть бути перетворені з одного регістру в іншій. Для цього використовуються стандартні функції _strlwr і _strupr. Слід зазначити, що в деяких версіях компіляторів імена даних функцій можуть випливати без провідного символу підкреслення.

Функція strlwr приймає в якості параметра вказівник на рядок символів, перетворить цей рядок до нижнього регістру (рядкові символи) і повертає вказівник на отриманий рядок. Дана функція має наступний прототип:

char * strlwr( char * str);

Наступний фрагмент показує застосування функції strlwr:

char S [ ] = "Error"; // оголошення й ініціалізація рядка

strlwr (S); // перетворення рядка в нижній регістр

cout << S << '\n'; // вивід на екран "error"

Функція strupr оголошена в такий спосіб:

char * strupr ( char * str);

Дана функція перетворить рядок символів, на який вказує str, у прописні букви (до верхнього регістру). У результаті роботи функції вертається вказівник на отриманий рядок.

Наведені вище функції перетворення рядків, працюючи з вказівниками, перетворять вихідний рядок, який не завжди може бути відновлена, тому, якщо надалі коді програми буде потрібно скористатися оригіналом символьного рядка, перед використанням функцій strlwr і strupr необхідно зробити копію їх аргументів.

У консольному додатку рядка кирилиці, що містять символи, некоректно відображаються у вікні додатка. Для рішення задачі відповідного перетворення кодів символів у заголовному файлі windows.h оголошена функція Chartooem, синтаксис якої має такий вигляд:

int CharToOem ( char * const str1, const char * str2);

Функція робить перетворення кодів символів рядка str1 таким чином, що рядок символів str2 правильно відображає символи кирилиці. При цьому рядок str1 не змінюється, а розмір строкового масиву str2 повинна бути достатнім для зберігання перетвореного рядка. Наступний приклад робить перетворення кодів символів рядка str1 кирилиці, що містить символи, у рядок str2, яка правильно відображається у вікні додатка:

#include <iostream.h>

#include <windows.h>

void main ()

{

char S1 [ ] = "Кирилиця"; // оголошення й ініціалізація рядка

char S2 [80]; // оголошення рядка довжиною 25 символів

Chartooem (S1, S2); // перетворення кодів символів кирилиці

сout << S1 << '\n'; // вивід на екран "шЁшыышУр"

cout << S2 << '\n'; // вивід на екран "Кирилиця"

}

Функція обігу рядка strrev міняє порядок проходження символів на зворотний (реверс рядка). Дана функція має прототип:

char * strrev ( char * str)

Наступний приклад демонструє роботу функції strrev.

char S [ ] = "Hello"; // оголошення й ініціалізація рядка

cout << S << '\n'; // вивід на екран "Hello"

strrev (S); // реверс рядка

cout << S << '\n'; // вивід на екран "olleh"

Ця функція також перетворить рядокроригінал.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: