Autor
|
Tema: Dar vuelta un string (Leído 11,253 veces)
|
VCore
Desconectado
Mensajes: 71
|
Buenas, quiero hacer una función para dar vuelta un string (ya se que existe strrev pero quiero hacer la mia).
La cosa es que no se me ocurre como "desglosar" cada caracter del string ¿como puedo hacer esto?, y por otro lado me gustaría saber como convertir un string a una lista.
Saludos.
|
|
|
En línea
|
|
|
|
Beakman
|
Para acceder a los caracteres del string, lo hacés de igual manera que con un vector de caracteres. variable_string[ a ];
Después bueno, supongo que ya sabrás, haces una triangulación, o copiás los caracteres a un nuevo string, etc.. No se qué querés decir con "convertir un string a una lista..."
|
|
|
En línea
|
|
|
|
Triper0
Desconectado
Mensajes: 38
|
Supongo que con lo de la lista te referís a poner cada carácter en cada nodo de la lista, en ese caso, como te dijo qily, agarras a la variable_string, la tomas como un vector, y vas recorriendo los índices y cargándolos en los nodos. Cuando declaras la lista, la declaras con un dato de tipo char y el último, si necesitas, le pones el '\0' para que quede como una lista de string.
|
|
|
En línea
|
|
|
|
naderST
|
Una string no es mas que un arreglo de caracteres, entonces supongamos que tenemos la variable cadena que es un string y esta contiene Hola tenemos que el arreglo sería así:
cadena[0] = 'H'; cadena[1] = 'o'; cadena[2] = 'l'; cadena[3] = 'a'; cadena[4] = '\0';
Por lo tanto no es mas que hacer un for desde 0 a 3 (strlen(cadena)-1).
|
|
|
En línea
|
|
|
|
VCore
Desconectado
Mensajes: 71
|
Quedo clarisimo, gracias
|
|
|
En línea
|
|
|
|
Lambda
|
Un for de 0 a 3 seria 0, 1, 2, seria de 0 a 4 (0, 1, 2, 3), no hace falta el -1 en el strlen, notese que si pones como condicion <= en el for de 0 a 3 seria lo mismo que si pusieses < y de 0 a 4, es mas "rapido" por que te ahorras una doble comparacion y la resta al strlen
|
|
« Última modificación: 27 Julio 2011, 13:52 pm por Lambda »
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
Creo que en vez de arreglos puedes usar punteros,en este caso se alarga,pero para hacer funciones de ese tipo es lo mejor que hay: #include <stdio.h> #include <string.h> int main(){ int j =0; char cadena[]=("Hola"); char *p =&cadena[j]; char *q =cadena; while(*p!=*q){ *p--; } return 0; }
Solo era un pequeño detalle.Para hacer funciones de la libreria string.h,lo mejor son los punteros. Salu2
|
|
|
En línea
|
|
|
|
naderST
|
Pero a la final es un puntero a una cadena osea a un arreglo de caracteres. No es cuestión de querer o no usar un arreglo, las cadenas son arreglos quieras o no.
|
|
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
Pero a la final es un puntero a una cadena osea a un arreglo de caracteres. No es cuestión de querer o no usar un arreglo, las cadenas son arreglos quieras o no.
Cierto,pero me parece mas facil manejarlo asi...Por lo menos desde mi punto de vista claro esta,cualquiera tiene su metodo...Creo que apuntando a las cadenas y aumentando el valor del puntero es mas facil,pero bueno para gustos los colores... Salu2
|
|
|
En línea
|
|
|
|
VCore
Desconectado
Mensajes: 71
|
A ver tengo esto: #include <cstdlib> #include <iostream> #include <../Proyectos/Test/misFunciones.h> using namespace std;
int main() { string entrada; cout << "Pone un string que te lo doy vuelta:"; cin >> entrada; cout << darVuelta(entrada); cout << endl; return 0; }
#include <string> using namespace std;
string darVuelta(string unString) { string outputString; for(int i = unString.size(); i > -1; i = i - 1) outputString[unString[i]]; return outputString; }
using namespace std;
string darVuelta(string unString);
Me compila sin problemas, pero luego de poner un texto cualquiera y darle enter se me cierra la pantalla y no llego a verlo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como cifrar un String?? y que siga siendo String...
.NET (C#, VB.NET, ASP)
|
Skeletron
|
2
|
5,067
|
27 Febrero 2009, 23:52 pm
por jackl007
|
|
|
Convertir de String[] a String
.NET (C#, VB.NET, ASP)
|
¨°o.O (ßa¢Kg|姧) O.o°
|
3
|
6,181
|
5 Julio 2009, 07:14 am
por 43H4FH44H45H4CH49H56H45H
|
|
|
[Solucionado] Comparar un String con cada una de las partes de otro String
« 1 2 »
.NET (C#, VB.NET, ASP)
|
Segurida
|
13
|
11,573
|
14 Mayo 2011, 18:52 pm
por Segurida
|
|
|
como puedo hacer q mi JTextArea me imprima mas de un dato string datos string
Dudas Generales
|
alda19
|
1
|
5,126
|
15 Junio 2011, 03:18 am
por Novlucker
|
|
|
Dar la vuelta a un string en C++
Programación C/C++
|
OmarHack
|
3
|
2,419
|
9 Julio 2013, 05:57 am
por OmarHack
|
|