Código de C/Visual C - Invertir una cadena de carácteres en C.

Invertir una cadena de carácteres en C.gráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(10)
Publicado el 04 de Marzo del 2002 por Raul Marmolejo
37.263 visualizaciones desde el 04 de Marzo del 2002. Una media de 56 por semana
Código que agregando una cadena de caracteres, te la devuelve invertida. Utilización de punteros para su implementación.

Versión 1
estrellaestrellaestrellaestrellaestrella(10)

Publicado el 04 de Marzo del 2002gráfica de visualizaciones de la versión: Versión 1
37.264 visualizaciones desde el 04 de Marzo del 2002. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/******** Programa hecho por Raul Marmolejo ********/
/********  	  rm3 kReAtIoNz             ********/
/********     raulgerardo@marmolejo.net     ********/
/******** para: www.lawebdelprogramador.com ********/
 
/* Programa creado por Ra£l Marmolejo

Invierte una cadena,...*/
 
#include <stdio.h>
 
int main()
{
char i,j;
char longitud;
char cadena[50];
char temporal;
clrscr ();
printf("Introduce un texto (menos de 50 caracteres): ");
gets(cadena);
longitud=strlen(cadena);
for (i=0,j=longitud-1; i<longitud/2; i++,j--)
{
	temporal=cadena[i];
	cadena[i]=cadena[j];
	cadena[j]=temporal;
}
printf("Resultado: %s\n", cadena);
getch ();
}
 
/* Prueba el programa pero cambiando la l¡nea del for por:

for (i=0,j=longitud; i<longitud/2; i++,j--)
es decir, quitando el -1 de la j. Ahora el programa no mostrar  nada
a la salida. Esto pasa porque ponemos el carácter '\0' del final de la cadena al
principio y por tanto aunque haya más caracteres después la cadena
queda vacía. Recuerda que el símbolo '\0' indica el final de la cadena.
Todo lo que haya después no se muesta.
*/



Comentarios sobre la versión: Versión 1 (10)

Sto ta tirao
05 de Marzo del 2002
estrellaestrellaestrellaestrellaestrella
por que no haces un for que comienze por el final de la cadena y vas mostrando cada elemento de la cadena? para mi mejor
Responder
Abel Zevallos Montes
06 de Marzo del 2002
estrellaestrellaestrellaestrellaestrella
Me parece muy bueno. Otra manera de hacerlo sería listar los elementos de la cadena desde el punto final de la misma, y ponerlo ello en una cadena auxiliar final, aunque eso, claro implica más uso de memoria.
Responder
Javi
12 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
/* Para empezar con C es un intento... pero con el timepo tenderás a hacerlo todo en una función con la memoria ya reservada: */
void invierte (char *dest, const char *orig)
{
int i=0, j;
j = strlen(orig) - 1;
while (j) dest[i++] = orig[j--];
}
Responder
Javi
12 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
/* Un lapsus.... :-P, este es el correcto */
void invierte (char *dest, const char *orig)
{
int i=0, j;
j = strlen(orig);
while (j--) dest[i++] = orig[j];
}
Responder
hay que ver
12 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Me resulta un poco "sospechoso" que las "librerias" como tú las llamas no estén absolutamente comentadas y casi sin sangrar y este de la pelota sí lo esté : /............. comentario global sobre tus "librerías": aprende metodología de la programación y POO, usa funciones más estándar y no compliques tanto el código, que casi no se entiende... soy yo, el de antes
Responder
Javi
20 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Tengo una duda, cómo es que haces esta chapuza con las cadenas y luego te pones a hacer "librerías gráficas"? no será que copias todo y dices que es tuyo?

Aprende Metodología de la Programación (y vete a un psicólogo)
Responder
fernando
21 de Abril del 2002
estrellaestrellaestrellaestrellaestrella
Disculpame no soy nadie para opinar sobre el tipo de programación de otra persona, pero creo que las críticas son constructivas.

En el programa que has hecho no hay punteros y realmente no es bueno.
Responder
torrente
12 de Mayo del 2002
estrellaestrellaestrellaestrellaestrella
Muy bueno lo del clrscr(), sobretodo sin meter la conio.h, eso si que es programar y lo demás son tonterias.
Responder
Esther Mendoza
24 de Mayo del 2010
estrellaestrellaestrellaestrellaestrella
Esta muy bien tu programa, esta buscando este código por que tenia líos al imprimir, y veo que usaste dos for, lo cual me pareció muy acertado, ademas de que hay varios que lo hacen con apuntadores, lo cual aun no conozco. Gracias.
Responder
alberto
08 de Octubre del 2014
estrellaestrellaestrellaestrellaestrella
y si yo quiero que el programa se mueva horizontalmente caracter por caracter como me ago>??
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s130