Программа на языке C для обращения массива или строки: методы и примеры

Вот программа на C, которая переворачивает массив или строку:

#include <stdio.h>
#include <string.h>
// Function to reverse an array
void reverseArray(int arr[], int size) {
    int start = 0;
    int end = size - 1;
    while (start < end) {
        // Swap elements
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        // Move indices towards the center
        start++;
        end--;
    }
}
// Function to reverse a string
void reverseString(char* str) {
    int length = strlen(str);
    int start = 0;
    int end = length - 1;
    while (start < end) {
        // Swap characters
        char temp = str[start];
        str[start] = str[end];
        str[end] = temp;
        // Move indices towards the center
        start++;
        end--;
    }
}
int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int arrSize = sizeof(arr) / sizeof(arr[0]);
    char str[] = "Hello, World!";
    printf("Original array: ");
    for (int i = 0; i < arrSize; i++) {
        printf("%d ", arr[i]);
    }
    printf("\nReversed array: ");
    reverseArray(arr, arrSize);
    for (int i = 0; i < arrSize; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n\nOriginal string: %s", str);
    reverseString(str);
    printf("\nReversed string: %s", str);
    return 0;
}

Эта программа демонстрирует два метода: reverseArrayдля инвертирования целочисленного массива и reverseStringдля реверса строки. Функция reverseArrayиспользует подход с двумя указателями для замены элементов из начальной и конечной позиций до тех пор, пока они не встретятся посередине. Аналогично, функция reverseStringменяет местами символы таким же образом.