Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: OmarHack en 9 Julio 2013, 00:53 am



Título: Dar la vuelta a un string en C++
Publicado por: OmarHack en 9 Julio 2013, 00:53 am
Me ha costado muchísimo encontrarlo, así que lo comparto, os dejo el código de un programa funcional:

Código
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. string nombreDelString = "Contenido del string";
  8.  
  9. nombreDelString = string(nombreDelString.rbegin(), nombreDelString.rend());
  10.  
  11. cout << nombreDelString;
  12.  
  13. getchar();
  14. getchar();
  15. return 0;
  16. }

Un saludo.


Título: Re: Dar la vuelta a un string en C++
Publicado por: 1mpuls0 en 9 Julio 2013, 01:32 am
Perdón encontrar qué?.

Te refieres al método navito de CPP para invertir una cadena?.

En los ejercicios de la escuela casi siempre se pide generar un método, supongo que no todos los lenguajes tienen el método definido para invertir una cadena.

Código
  1.    string cadena = "Ola que ase, invirtiendo el texto o que ase";
  2.    string aux_cadena = "";
  3.  
  4.    for (int i = cadena.size(); i >=0 ; i--)
  5.         aux_cadena += cadena[i];
  6.  
  7.    cout<<"El texto normal es: "<<cadena<<endl;
  8.    cout<<"El texto invertido es: "<<aux_cadena<<endl;
  9.  

No digo que tu método está mal, al contrario es una forma fácil, sencilla y rápido de hacerlo.

Saludos.


Título: Re: Dar la vuelta a un string en C++
Publicado por: flony en 9 Julio 2013, 05:48 am
 ;-)


Título: Re: Dar la vuelta a un string en C++
Publicado por: OmarHack en 9 Julio 2013, 05:57 am
Perdón encontrar qué?.

Te refieres al método navito de CPP para invertir una cadena?.

En los ejercicios de la escuela casi siempre se pide generar un método, supongo que no todos los lenguajes tienen el método definido para invertir una cadena.

Código
  1.    string cadena = "Ola que ase, invirtiendo el texto o que ase";
  2.    string aux_cadena = "";
  3.  
  4.    for (int i = cadena.size(); i >=0 ; i--)
  5.         aux_cadena += cadena[i];
  6.  
  7.    cout<<"El texto normal es: "<<cadena<<endl;
  8.    cout<<"El texto invertido es: "<<aux_cadena<<endl;
  9.  

No digo que tu método está mal, al contrario es una forma fácil, sencilla y rápido de hacerlo.

Saludos.

No sé cual será más rápida, a mi me costo bastante encontrarla sin tener que usar muchas variables, me imagino que internamente usará alguna más, pero ni idea.
Un saludo!