Dev - C++ - Leer cadena con punteros, no me funciona

 
Vista:
Imágen de perfil de Dano1952

Leer cadena con punteros, no me funciona

Publicado por Dano1952 (1 intervención) el 31/05/2018 20:20:04
Hola ¿como están? .
Tengo una dificultad en este programita que por mas que repaso manuales y busco en la web no logro dar con la tecla, mi pregunta es porque no puedo imprimir la frase invertida con un simple printf %s,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
 
int main(void){
	char cadena[]="Rosa y Yiyi", tmp[12]="";
	char *p = cadena;
	char *t = tmp;
	int i, j, lar;
 
	printf ( "\n %s\n", p );
	lar = strlen(p);
 
	for (i=lar,j=0; i>=0; i--,j++){
		*(t+j) = *(p+i);
	}
 
	for (i=0; i<=lar; i++){
		printf ( "%c", *(t+i) );
	}
 
	printf ( "\n" );
 
	return 0;
}

1
2
3
for (i=0; i<=lar; i++){
		printf ( "%c", *(t+i) );
	}
aquí es donde quiero leer la cadena tmp(*t) sin el bucle.

Me podrían decir donde estoy fallando?
Saludos.
Daniel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 417
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Leer cadena con punteros, no me funciona

Publicado por Thanatos (199 intervenciones) el 02/06/2018 08:37:29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
 
int main(void) {
    char cadena[] = "Rosa y Yiyi";
    char *c = cadena;
    char temp[12];
    char *t = temp;
 
    printf("%s\n", c);
 
    int lar = (int) strlen(cadena);
    for (int i = lar - 1, j = 0; i >= 0; i--, j++) {
        *(t + j) = *(c + i);
    }
    *(t + lar) = '\0';
 
    printf("%s\n", t);
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer cadena con punteros, no me funciona

Publicado por Dano1952 (1 intervención) el 03/06/2018 00:02:40
Hola, muchas gracias, funciona a la perfección.
Dano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar