<div><font size="2">strlen te da la cantidad de caracteres de la cadena, sin contar el nulo al final. por lo tanto con este for:</font></div>
<div><font size="2"></font> </div>
<div><font size="2">for (i=0; i<numero; i++)</font> <br><font face="sans-serif" size="2">                        {</font> <br><font face="sans-serif" size="2">                                consulta[i]=caux[i];</font>
 <br><font face="sans-serif" size="2">                        }</font> </div>
<div> </div>
<div>estas copiando todos los caracteres de caux en consulta, pero no estas poniendolo el '\0' al final para indicar fin de cadena.</div>
<div> </div>
<div>luego de ese for podrias poner consulta[i] = '\0'; y deberia andar.</div>
<div> </div>
<div>O tambien podrias omitir usar ese for y utilizar strcpy, que te copia toda la cadena incluyendo el nulo ( strcpy( char* cadena_destino, char* cadena_origen ); ) para lo que tendrias que incluir string.h.</div>
<div> </div>
<div>Sin embargo, estas alocando espacio para caux de un byte ( sizeof(char) ) y estas usando gets, con lo que estas escribiendo en memoria que no tenes reservada.</div>
<div> </div>
<div>deberias ver como manejar eso, ya sea usando un array de char o ese puntero pero asignandole mas memoria.</div>
<div> </div>
<div>espero que te sea de ayuda</div>
<div>saludos.<br><br> </div>
<div><span class="gmail_quote">El día 28/08/07, <b class="gmail_sendername"><a href="mailto:duna.montero@ldasistencia.com">duna.montero@ldasistencia.com</a></b> <<a href="mailto:duna.montero@ldasistencia.com">duna.montero@ldasistencia.com
</a>> escribió:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br><font face="sans-serif" size="2">Hola.</font> <br><font face="sans-serif" size="2">Tengo un problema con un puntero.
</font> <br><font face="sans-serif" size="2">El programa acepta una cadena de caracteres que no sé en un principio el número que tiene.</font> <br><font face="sans-serif" size="2">He programado esto, pero se queda basura después del ;, que debería ser el último caracter.
</font> <br><font face="sans-serif" size="2">Os pongo el código a ver si a alguien se le ocurre algo.</font> <br><font face="sans-serif" size="2">Muchas gracias.</font> <br><br><br><font face="sans-serif" size="2">int main() 
</font><br><font face="sans-serif" size="2">{</font> <br><br><font face="sans-serif" size="2">        //char consulta [256];</font> <br><font face="sans-serif" size="2">        int a=0, numero, i;</font> <br><font face="sans-serif" size="2">
        char * caux, * consulta;</font> <br><font face="sans-serif" size="2">        </font><br><font face="sans-serif" size="2">        </font><br><br><font face="sans-serif" size="2">  do</font> <br><font face="sans-serif" size="2">
  {</font> <br><font face="sans-serif" size="2">            </font><br><font face="sans-serif" size="2">                printf ("\n\nEscriba la consulta \n\n");</font> <br><font face="sans-serif" size="2">                
</font><br><font face="sans-serif" size="2">                        caux= (char *) malloc (sizeof (char));</font> <br><font face="sans-serif" size="2">                        gets (caux);</font> <br><font face="sans-serif" size="2">
                        numero=strlen (caux);</font> <br><font face="sans-serif" size="2">                        printf ("%d", numero);</font> <br><br><font face="sans-serif" size="2">                        consulta = (char*) malloc (numero*(sizeof (char)));
</font> <br><br><font face="sans-serif" size="2">                        for (i=0; i<numero; i++)</font> <br><font face="sans-serif" size="2">                        {</font> <br><font face="sans-serif" size="2">                                consulta[i]=caux[i];
</font> <br><font face="sans-serif" size="2">                        }</font> <br><br><br><font face="sans-serif" size="2">                        printf ("\n%s\n", consulta);</font> <br><br><font face="sans-serif" size="2">
                a = siok (consulta);</font> <br><br><font face="sans-serif" size="2">                if (a==0)</font> <br><font face="sans-serif" size="2">                {</font> <br><font face="sans-serif" size="2">                        printf ("\nLa consulta descrita no es correcta\n");
</font> <br><font face="sans-serif" size="2">                        getch();</font> <br><font face="sans-serif" size="2">                }</font> <br><font face="sans-serif" size="2">                free(consulta);</font>
 <br><font face="sans-serif" size="2">                free (caux);</font> <br><font face="sans-serif" size="2">                fflush (stdin);</font> <br><br><font face="sans-serif" size="2">                </font><br><font face="sans-serif" size="2">
  }while (a==0);</font> <br><br><br><font face="sans-serif" size="2">Meto esto y me da el resultado siguiente:</font> <br><br><br><br><font face="sans-serif" size="2">Escriba la consulta</font> <br><br><font face="sans-serif" size="2">
select * from libros where cl = 123;</font> <br><font face="sans-serif" size="2">36</font> <br><font face="sans-serif" size="2">select * from libros where cl = 123;½½½½½½½½¯■¯■</font> <br><br>_______________________________________________
<br>Lista de correo Cconclase <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>Bajas: <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">
http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br>