Programa para invertir una string usando punteros

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.

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *