Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/04/2009, 22:41
darkmasterr
 
Fecha de Ingreso: diciembre-2004
Mensajes: 163
Antigüedad: 20 años, 1 mes
Puntos: 2
Respuesta: No veo el error

que extraño, podrias poner mas de tu código para ver bien cual es el problema, quizas te estes equivocando en el manejo del puntero o algo.

Si palabra es un puntero a char y esta apuntando correctamente a alguna dirección de memoria deberia entonces funcionar pero tienes que cuidar que el puntero palabra se pueda recorrer como un array o sea que puedas hacer puntero[1] o puntero[2] y que puntero+1 o puntero+2 apunten a cosas correctas, por ejemplo:

Código c:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #define N 10
  6.  
  7. int main()
  8. {
  9.     char *palabra;
  10.     char aux;
  11.     int i,j,t;
  12.  
  13.     palabra = (char *)malloc(sizeof(char)*N);
  14.  
  15.     gets(palabra);
  16.  
  17.     t=strlen(palabra);
  18.  
  19.     printf("La palabra desordenada es %s\n",palabra);
  20.  
  21.     for (int i=1; i<t; i++)
  22.     {
  23.         for (int j=0 ; j<t - 1; j++)
  24.         {
  25.             if (toupper(palabra[j]) > toupper(palabra[j+1]))
  26.             {
  27.                 aux = palabra[j];
  28.                 palabra[j] = palabra[j+1];
  29.                 palabra[j+1] = aux;
  30.             }
  31.         }
  32.     }
  33.     printf("La palabra ordenada es %s",palabra);
  34.  
  35.     free(palabra);
  36.  
  37.     return 1;
  38. }