[C con Clase] (sin asunto)

Samuel Porras samuelporras en gmail.com
Mar Ago 11 15:48:10 CEST 2009


Si no recuerdo mal, es un ejercicio para prácticar las cadena de 
carácteres por lo que yo hice, creo que ha de hacerlo todo en carácter y 
no pasarlo a integer, luego a la hora de la verdad la función atoi() es 
la mejor opción, pero para este ejercicio en concreto has de crear la 
función para que haga su función de la cadena directamente.

Un cordial saludo!

David fire escribió:
> Hola
> por favor completa el asunto en los mails.
> por otro lado
>
> el problema es bastante mas sencillo.
>
> busca atoi(), convierte una cadena de caracteres en un integer, el 
> prototipo de atoi seria
> int atoi(char *cadena);
>
> teniendo en cuenta que si no encuentra numeros devuelve 0, podrias
> int i;
> i=atoi(cadena);
> if(i==0)
> {
>    if(*cadena==0)//miro si el primer caracter es un 0 o una letra,
>                         //si fuera otro numero i no  valdria 0
>    {
>        i++;
>        sprintf(cadena,%d,i);
>        return true;
>    }else
>     return false
> }else
> {
>     if(i==999999999)
>         i=0;
>     else
>         i++;
>
>    sprintf(cadena,%d,i);
>
> }  
>       
> return true;
>
>
> El 11 de agosto de 2009 09:16, josé Ignacio Retamal Thomsen 
> <pproma302 en hotmail.com <mailto:pproma302 en hotmail.com>> escribió:
>
>     Hola, tengo mim primero problema. y es con la primer serie de
>     problemas del curso exactamente el problema 4 que dice asi:
>
>     "Hacer un programa que contenga una función con el prototipo |bool
>     Incrementa(char numero[10]);|. La función debe incrementar el
>     número pasado como parámetro en una cadena de caracteres de 9
>     dígitos. Si la cadena no contiene un número, debe devolver false,
>     en caso contrario debe devolver true, y la cadena debe contener el
>     número incrementado.
>     Si el número es "999999999", debe devolver "0". Cadenas con
>     números de menos de 9 dígitos pueden contener ceros iniciales o
>     no, por ejemplo, la función debe ser capaz de incrementar tanto la
>     cadena "3423", como "00002323".
>     La función "main" llamará a la función Incrementar con diferentes
>     cadenas."
>
>     Bueno lo primero que hago yo es pasar la cadena a un numero entero
>     para incrementrao y luego meterlo otra ves en la cadena. Pero no
>     resulta el programa como yo
>     espero en el codigo les muestro claramente el problema:
>
>     #include <iostream>
>     using namespace std;
>
>     bool incrementa(char Numero[10]);
>     char Numero[10]="223456789";
>     void Pause();
>
>     int main()
>     {
>        
>        
>         incrementa(Numero);
>     }
>
>     bool incrementa(char Numero[10])
>     {
>         int numero = 0;
>         int n = 1;
>        
>
>        
>
>         for(int i=0;i<9;i++)
>         {
>             for(int k = 1; k < 9 - i; k++)
>             {
>                 n *= 10;
>             }
>            
>             cout<<Numero[i]<<n<<endl;/*En el primer bucle muestra
>     valor Numero[0]=2,
>                                         n = 10e9, como
>     espero*/                                              
>             Pause();
>            
>          
>             numero += n*Numero[i];
>               cout<<numero<< endl; //cuando realisa la multiplicacion
>     de los 2 valores
>               Pause();              // ya vistos da un resultdo no
>     esperado: n*Numero[0] = 705032703 ???
>             n = 1;
>         }
>        
>     }
>
>     void Pause()
>     {
>         system("PAUSE");
>     }
>     De antemas manos muchas gracias y saludos a todos.
>
>     ------------------------------------------------------------------------
>     ¿Querías más espacio para tus correos? Hotmail te da espacio
>     ILIMITADO. ¡Disfruta del Nuevo Hotmail!
>     <http://www.microsoft.com/latam/windows/windowslive/products/hotmail.aspx>
>
>     _______________________________________________
>     Lista de correo Cconclase Cconclase en listas.conclase.net
>     <mailto:Cconclase en listas.conclase.net>
>     http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>     Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>     <http://listas.conclase.net/index.php?gid=2&mnu=FAQ>
>
>
>
>
> -- 
> (\__/)
> (='.'=)This is Bunny. Copy and paste bunny into your
> (")_(")signature to help him gain world domination.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ




Más información sobre la lista de distribución Cconclase