C/Visual C - PUNTEROS

 
Vista:

PUNTEROS

Publicado por NOVATO (46 intervenciones) el 27/03/2006 21:00:24
como invierto una cadena usando punteros, sin usar la funcion strrev, usando sctrpy?? sin hacerlo caracter por caracter

tengo que introducir una cadena, convertirla de minusculas a mayusculas y viceverza, despeus tengo auqe invertir la cadena usando punteros, ahorita tengo esto;
necesito evitar //streev, solo puedo usar instrucciones para cadena como strlen y strcpy.. alguien ppodria orientar,e....

#include<stdio.h>
#include<string.h>
#include<conio.h>

void main()
{
char cadena[50],*p;
clrscr();
printf("\nCONVIERTE MAYUSCULAS A MINUSCULAS Y VICEVERZA\n");
printf("\nIntroduce la cadena: ");
gets(cadena);
p=cadena; //se le asigna el primer elemento
while(*p)
{
if(*p>='A' && *p<='Z')
{
*p=*p+32;
*p++;
}
if(*p>='a' && *p<='z')
{
*p=*p-32;
*p++;
}
if(*p==' ')
{
*p++;
}
}
printf("\nLa cadena es %s\n",cadena);
//printf("Invertida es %s",strrev(cadena));
getch();
}
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

RE:PUNTEROS

Publicado por Nelek (816 intervenciones) el 28/03/2006 11:03:57
Podrias intentar a grabar la cadena en una variable o vector (letra por posicion), luego recorriendolo al reves y copiando en la nueva cadena.

es decir... para grabar: for (int i = 0, i < length, i++)

y luego: for (int j = length-1; j >= 0; j--)

Es una idea, no se si te servira... pero ahi la tienes
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

RE:PUNTEROS

Publicado por ISAIAS DUQUE GOMEZ (46 intervenciones) el 28/03/2006 13:51:22
no me entendiste amigo, debo usar punteros, y no debo supuestamente el profesor hacer recorrido caracter por caracter como tu dices, checa el codigo que coloque... bueno eso que tu pusiste claro lo se, pero usando punteros no l hbia hecho, es nuevo para mi.. todas maneras gracias..

=)
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

RE:PUNTEROS

Publicado por chuidiang (73 intervenciones) el 30/03/2006 10:35:33
Hola:

Pon un puntero al principio de la cadena y otro al final (tendrás que usar strln()). Por ejemplo pinicio y pfin

Luego haz un bucle. Si puedes usar un for, hazlo desde 0 hasta la mitad de la longitud de la cadena. Si no puedes, haz un while hasta que pinicio sea mayor o igual que pfin

Luego simplemente, usando una variable char auxiliar, intercambia *pinicio por *pfin y al revés

aux = *pinicio;
*pinicio = *pfin;
*pfin = aux;

luego incrementas pinicio y decrementas pfin y otra vuelta al bucle.

Se bueno.
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