Отображение строки в обратном порядке

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы научитесь писать программу на C++, которая выводит заданную строку в обратном порядке. В C++ существуют несколько подходов к реверсу строки. Мы рассмотрим два различных метода: использование собственной функции reverse, которую мы напишем сами, и использование встроенной функции reverse в C++.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/StandardLibraryGroup -.-> cpp/string_manipulation("String Manipulation") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") subgraph Lab Skills cpp/strings -.-> lab-96184{{"Отображение строки в обратном порядке"}} cpp/for_loop -.-> lab-96184{{"Отображение строки в обратном порядке"}} cpp/function_parameters -.-> lab-96184{{"Отображение строки в обратном порядке"}} cpp/output -.-> lab-96184{{"Отображение строки в обратном порядке"}} cpp/string_manipulation -.-> lab-96184{{"Отображение строки в обратном порядке"}} cpp/standard_containers -.-> lab-96184{{"Отображение строки в обратном порядке"}} end

Пользовательская функция для реверса строки

Сначала напишем пользовательскую функцию для реверса заданной строки. Эта функция будет менять местами первый символ с последним, второй с предпоследним и так далее, пока вся строка не будет перевернута.

Создадим функцию reverseStr и передадим строку по ссылке. Таким образом, мы сможем изменить исходную строку, а не возвращать новую. Функция будет иметь цикл for, который будет менять местами символы с обоих сторон строки, постепенно двигаясь внутрь, пока вся строка не будет перевернута.

#include<iostream>
#include<string>
using namespace std;

void reverseStr(string& str) {
    int n = str.length();
    for (int i = 0; i < n / 2; i++) {
        swap(str[i], str[n - i - 1]);
    }
}

Использование встроенной функции "reverse"

C++ также предоставляет встроенную функцию для реверса строки, которая находится в заголовочном файле <algorithm>. Мы можем использовать функцию reverse(), передав начальную и конечную позиции строки для реверса.

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main() {
    string str = "hello";
    reverse(str.begin(), str.end());
    cout << str;
    return 0;
}

Тестирование программы

Протестируем программу, используя любой из вышеперечисленных методов. Для этого просто вызовите функцию, которую только что создали, или встроенную функцию reverse(). Передайте в функцию в качестве аргумента строку, которую хотите перевернуть.

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

void reverseStr(string& str) {
    int n = str.length();
    for (int i = 0; i < n / 2; i++) {
        swap(str[i], str[n - i - 1]);
    }
}

int main() {
    string myString = "Hello World!"; //define a string to be reversed

    //Method 1
    cout << "REVERSED STRING USING CUSTOM FUNCTION:\n";
    reverseStr(myString); //calling the custom function to reverse the string
    cout << myString << endl;

    //Method 2
    cout << "\nREVERSED STRING USING INBUILT 'REVERSE' FUNCTION:\n";
    reverse(myString.begin(), myString.end()); //calling the inbuilt function to reverse the string
    cout << myString << endl;

    return 0;
}

Резюме

В этом практическом занятии мы научились писать программу на C++, которая выводит заданную строку в обратном порядке. Мы рассмотрели два различных метода: использование собственной функции, которую мы создали сами, и использование встроенной функции reverse в C++. Мы также протестировали программу с использованием обоих методов, вызвав функции. Теперь вы можете мгновенно перевернуть любую строку!