Coger caracteres de una palabra

Iniciado por Komodo, 1 Mayo 2010, 19:52 PM

0 Miembros y 1 Visitante están viendo este tema.

.:BlackCoder:.

No no hay error si no que la asignacion de un char a un caracter sin un cast, crei q daba error... Pero nunca dije q habia error  :xD Me referia a la linea de abajo, era por ponerlos a pensar :rolleyes: jeje

PD: Me confundi... Sorry

Una pregunta... Para que ese while(); no es mejor usar strlen? q esta en la libreria std?

Saludos...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




leogtz

Da lo mismo, la aplicación del código es sencilla.

Los paréntesis aquí no son necesarios:
(len++)

Pudiera quedar así:

while(*(str + len++));
   
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Komodo

Al final este código de Dellarts, me ha servido:

#include <iostream>

int main(){
     int x, valor;
     char cadena[]="Komodo";

    for(x=0;x<strlen(cadena);x++)
    {
           valor = cadena[x];
           printf("%i ",valor);
    }
return 0;
}


do-while

#13
¡Hola!

Aqui va mi propuesta:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   int* ascii = NULL, i=0;

   do{

       /* aumentamos el vector para almacenar un nuevo dato */
       ascii = (int*) realloc(ascii,(++i) * sizeof(int));

       ascii[i-1] = getchar();

       if(ascii[i-1] != '\n')
           printf("%d ",ascii[i-1]);

   }while(ascii[i-1] != '\n');

   /* haces lo que quieras con los valores almacenados ... */

   /* liberas la memoria */
   free(ascii);

   /* pausa */
   getchar();

   return 0;
}
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

biribau

Siento chafar, pero char se puede usar como int así que no hace falta ningún código.

char c = 'A';
int i;
i = c; //<-- cast implicito, porque un char en realidad es un entero con menor rango(1byte)

Si quieres pasarlo a un array de enteros aun así(estarás malgastando bytes), pues

char cadena[] = "Komodo";
int *asciis = (int *)malloc(sizeof(int)*strlen(cadena));
for(int i = 0; cadena[i]; i++)
      asciis[i] = cadena[i];

Komodo

biribau, yo buscaba lo que he puesto, simplemente, coger una palabra y en un for descompongo todas sus letras e imprimo sus valores asciis el code que tengo funciona a la perfección.

Está claro que un char se puede imprimir como int y a la inversa igual.

Saludos!


biribau

Ok
Si solo quieres imprimirlo no necesitas ni siquiera variable auxiliar, puedes escribir un
caracter como numero con %d o %u

Mr.Blue

#17
Código (cpp) [Seleccionar]
#include <string.h>
#include <stdio.h>

void main()
{
 char cadena[] = "Komodo";
 int len = strlen(cadena);
 for (int x = 0; x < len; x++)
 {
printf("%d ", cadena[x]);
 }
}


podes modificar para que se ingrese la cadena i qye lo pase






**perdon vi q tenias la solucion ahi  es media parecida