Dada una array de literales de string, invierta la array.
Ejemplos:
Input : arr[] = {"Coding", "Never", "Fail", "Me"} Output : arr[] = {"Me", "Fail", "Never", "Coding"} Input : arr[] = {"welcome", "to", "geeksforgeeks"} Output : arr[] = {"geeksforgeeks", "to", "welcome"}
La idea es crear una array de punteros, almacenar strings literales en él. Para invertir la array, comenzamos desde el principio y el final, y movemos ambos punteros uno hacia el otro. Mientras nos movemos, seguimos intercambiando punteros.
// C program to reverse an array of strings #include <stdio.h> #include <string.h> void PrintArray(char* arr[], int n) { for (int i = 0; i < n; i++) { printf("%s ", arr[i]); } } void ReverseArray(char* arr[], int n) { char* temp; // Move from begin and end. Keep // swapping strings. int j = n - 1; for (int i = 0; i < j; i++) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; j--; } } int main() { char* arr[] = { "Coding", "never", "fail", "me" }; int n = sizeof(arr) / sizeof(arr[0]); PrintArray(arr, n); printf("\n"); ReverseArray(arr, n); PrintArray(arr, n); return 0; }
Producción:
Coding never fail me me fail never Coding
Publicación traducida automáticamente
Artículo escrito por DhanaSiggie y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA