C/Visual C - problema punteros

 
Vista:
sin imagen de perfil

problema punteros

Publicado por Paco (2 intervenciones) el 02/10/2011 23:11:01
Hola. Estoy estudiando C y la verdad es que ando algo perdido, ya que el año pasado estudie Java, con el tema que mas perdido ando es con el tema de los punteros.

Tengo que resolver una serie de problemas con punteros y no se ni por donde empezar, a ver si alguno de vosotros me puede ayudar, gracias con antelación.

El problema en cuestion consiste en hacer un programa que transforme una cadena de texto a mayúsculas:

---------------------------------------------------------------------
Tiene que leer un texto por la consola, convertirlo a mayusculas y despues sacarlo por pantalla. Basicamente es rellenar este codigo:
---------------------------------------------------------------------
#include <stdio.h>
#define TAM_CADENA 200
main() {
// Puntero a caracter para copiar las cadenas
char *p1, *p2;
// A) Define las variables cadena y cadena2
// B) Leer cadena de consola
// C) Convertir a mayúsculas
p1 = cadena;
p2 = cadena2;
while (*p1 != '\0') {
// Copiar p1 a p2 restando 32
}
// Acordarse de poner el cero final en cadena2
// D) Sacar por consola la cadena2.
}
--------------------------------------------------------------------

Gracias compañeros.
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

problema punteros

Publicado por yonatan (23 intervenciones) el 03/10/2011 14:51:42
Hola, este codigo que dejo a continuacion te va a servir para lo que queres hacer:


#include <stdio.h>

void main ()

{

char texto[200];
char textoM[200];
char a;

printf("ingrese un texto para convertir en mayuscula\n");

scanf("%s",&texto);

printf("La cadena ingresada en minusculas es: %s\n",texto);

for (texto[a];texto[a]!='\0';texto[a++])


{

textoM[a] = texto[a]-32;



}

printf("el texto en mayusculas es: %s\n",textoM);

}

y te dejo una definicion de puntero basica y sensilla de comprender: Un puntero es una variable comun que a diferencia de otras variables , estas guardan una direccion de memoria de otra variable, los punteros siempre tienen que ser declarados de el mismo tipo cuyo direccion de variable van a guardar...ejemplo:

char a=0; //variable a tipo char comun, esta a su ves tiene una direccion de memoria asignada por el procesador, esta direccion se consigue anteponiendo el signo & al nombre de la variable , en nuestro caso seria &a.
ahora declaramos un puntero a char "b" que contendra la direccion de memoria de la variable "a"

char *b; // de tipo char ,ya que la direccion que guardaremos es "char a", bien ahora guardamos la direccion de memoria de "a" en "b" de la siguiente manera...

b = &a;// ahora "b" guarda la ubicacion (direccion) de "a" en memoria:

puedes comprobar que si haces por ejemplo = b = 10; estaras modificando el valor de "a" ya que "b" contiene el valor de direccion de "a"....puede parecer complicado en principio pero es facil con un poco de practica.....fijate que en el programa que realice usamos el vector " char texto[200], para almacer la palabra introducida por el usuario: el nombre del vector señala por si solo la direccion de memoria que ocupa el vector , es decir "texto" es un puntero que señala el comienzo del vector "texto"....,me explico?

cualquier duda , pregunta y contestare....saludosssss
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
sin imagen de perfil

problema punteros

Publicado por Jorge (2 intervenciones) el 03/10/2011 14:57:02
No parece muy complicado, mas bien algo lioso, a ver si puedo hacerlo yo mismo sin mirar tu programa, y ya te comento ok??

Gracias tio ;)
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

problema punteros

Publicado por yonatan (23 intervenciones) el 03/10/2011 15:02:41
dale , es lo mejor que lo practiques vos mismo, y como dije cualquier cosa pregunta....saludos
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

problema punteros

Publicado por Aitor (1 intervención) el 05/10/2011 02:01:08
#include<stdio.h>
#define TAM_CADENA 200

main(){


char *p1, *p2;

char cadena[TAM_CADENA];
char cadena2[TAM_CADENA];

scanf("%s", cadena);

p1=cadena;
p2=cadena2;

while(*p1!='\0'){

*p2=*p1-32;
printf("%c", *p2);
p1=p1+1;
}
printf("\n");

}
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