Dada una string, la tarea es invertir esta String usando punteros. Ejemplos:
Input: Geeks Output: skeeG Input: GeeksForGeeks Output: skeeGroFskeeG
Enfoque: este método implica tomar dos punteros, uno que apunta al comienzo de la string y el otro al final de la string. Luego, los caracteres se invierten uno por uno con la ayuda de estos dos punteros. Programa:
C++
#include <bits/stdc++.h> using namespace std; // Function to reverse the string // using pointers void reverseString(char* str) { int l, i; char *begin_ptr, *end_ptr, ch; // Get the length of the string l = strlen(str); // Set the begin_ptr and end_ptr // initially to start of string begin_ptr = str; end_ptr = str; // Move the end_ptr to the last character for (i = 0; i < l - 1; i++) end_ptr++; // Swap the char from start and end // index using begin_ptr and end_ptr for (i = 0; i < l / 2; i++) { // swap character ch = *end_ptr; *end_ptr = *begin_ptr; *begin_ptr = ch; // update pointers positions begin_ptr++; end_ptr--; } } // Driver code int main() { // Get the string char str[100] = "GeeksForGeeks"; cout<<"Enter a string: "<<str<<endl; // Reverse the string reverseString(str); // Print the result printf("Reverse of the string: %s\n", str); return 0; } // This code is contributed by akashish__
C
#include <stdio.h> #include <string.h> // Function to reverse the string // using pointers void reverseString(char* str) { int l, i; char *begin_ptr, *end_ptr, ch; // Get the length of the string l = strlen(str); // Set the begin_ptr and end_ptr // initially to start of string begin_ptr = str; end_ptr = str; // Move the end_ptr to the last character for (i = 0; i < l - 1; i++) end_ptr++; // Swap the char from start and end // index using begin_ptr and end_ptr for (i = 0; i < l / 2; i++) { // swap character ch = *end_ptr; *end_ptr = *begin_ptr; *begin_ptr = ch; // update pointers positions begin_ptr++; end_ptr--; } } // Driver code int main() { // Get the string char str[100] = "GeeksForGeeks"; printf("Enter a string: %s\n", str); // Reverse the string reverseString(str); // Print the result printf("Reverse of the string: %s\n", str); return 0; }
Producción:
Enter a string: GeeksForGeeks Reverse of the string: skeeGroFskeeG
Complejidad de tiempo: O(N), donde N representa la longitud de la string dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.