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

Versión 1
estrellaestrellaestrellaestrellaestrella(10)

Publicado el 4 de Marzo del 2002gráfica de visualizaciones de la versión: Versión 1
83.225 visualizaciones desde el 4 de Marzo del 2002
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)

5 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
6 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
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
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
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
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
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
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
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
8 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s130