Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Indices de un apuntador

Estas en el tema de Indices de un apuntador en el foro de C/C++ en Foros del Web. Hola comunidad!!! Tengo una sencilla duda, en un apuntador de tipo carácter, el cual le enviare a memoria una cadena, esta cadena se debe de ...
  #1 (permalink)  
Antiguo 16/11/2011, 01:37
Avatar de Kanuto1272  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico DF
Mensajes: 21
Antigüedad: 13 años, 6 meses
Puntos: 0
Información Indices de un apuntador

Hola comunidad!!!

Tengo una sencilla duda, en un apuntador de tipo carácter, el cual le enviare a memoria una cadena, esta cadena se debe de acomodar de forma alfabética, es decir si introduzco "HOLA", me debe de ordenar de forma "AHLO", mi idea es convertir cada carácter en entero y me de el código ascii y con la burbuja acomodarlo, solo es que no se manejar el indice del apuntador... me pueden ayudar?
Actualmente llevo esto:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

int aux, i, j, L, LI, tam;
char *cad;

main()
{
       cad=new char;
       aux=0;
       printf("Teclee una cadena...");
       gets(cad);
       clrscr();
       tam=strlen(cad);

       for(i=0;i<tam;i++)
       {
   	     for(j=0;j<tam-1;j++)
             {

             }
       }

   printf("%s",cad);
   getch();
}
  #2 (permalink)  
Antiguo 16/11/2011, 05:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Indices de un apuntador

Para empezar, estas reservando mal la memoria: Debes usar los corchetes para reservar mas de un bloque. Ejemplo:

cad = new char[100]; // 100 caracteres.

luego
cad[0] es el primer caracter
cad[1] es el segundo
cad[99] es el ultimo
cad[i] es i-esimo caracter de la cadena.

Ten en cuenta que se pueden comparar char asi:

if (cad[i] < cad[j])

Tambien puedes asinarlos a otra variable:

char c:
c = cad[i];

Saludos

Etiquetas: c++, lenguajec
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:29.