• Viernes 8 de Noviembre de 2024, 12:30

Autor Tema:  Llenar Vector Con Letras  (Leído 11590 veces)

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Llenar Vector Con Letras
« en: Sábado 2 de Junio de 2007, 17:28 »
0
Hola amigos los felicito por vuestro foro esta del uno.
Ahora paso a preguntar:

Toy comenzando en C y este ejercicio me dejo medio parado.

Necesito ingresar por ejemplo mi nombre de una sola vez y despues llenar un vector con ese nombre pero no encuntro la manera de hacerlo pueden ayudarme.

ej:

Ingrese Nombre= Marcelo

vector
x[m]
x[a]
x[r]
x[c]
x[e]
x[l]
x


me entienden para luego ordenar alfabeticamente el vector, esa parte ya la tengo lista con la funcion strcmp. Pueden postearme el codigo de como se hace.

Gracias y Felicidades por el Foro.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #1 en: Sábado 2 de Junio de 2007, 17:49 »
0
Código: Text
  1. #include<stdio.h>
  2.  
  3. int main() {
  4.  
  5. char nombre[20];
  6.  
  7. printf("Ingrese nombre:");
  8. gets(nombre);
  9.  
  10. printf("El nombre que se ingreso es: %s", nombre);
  11.  
  12.  
  13. return 0;
  14.  
  15. }
  16.  
  17.  
  18.  

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Llenar Vector Con Letras
« Respuesta #2 en: Sábado 2 de Junio de 2007, 17:50 »
0
En C/C++ las cadenas son un Array, podés acceder directamente de la siguiente manera:
Código: Text
  1. Nombre[i]
  2.  
y listo.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #3 en: Sábado 2 de Junio de 2007, 18:27 »
0
muchas gracias por las respuestas me dejan mas claro, viendo los dos ejemplos entonces así mostraria el arreglo si fuese de largo 5

Código: Text
  1.  
  2.  
  3. for(x=0;x<5;x++)
  4. {
  5.      printf("%s\n",nombre[x]);
  6. }
  7.  
  8.  
  9.  

ejecute eso para que fuese mostrandome las letras hacia abajo pero no me funciona.

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #4 en: Sábado 2 de Junio de 2007, 19:04 »
0
ayuda please necesito imprimir el vector pero me da un error  ;)

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #5 en: Sábado 2 de Junio de 2007, 19:22 »
0
Código: Text
  1. #include<stdio.h>
  2. #define MAX 3
  3.  
  4. int main() {
  5.  
  6. char nombre[MAX];
  7. int x;
  8.  
  9. for(x=0;x<MAX;x++)
  10. {
  11.       printf("Ingrese nombre:");
  12.       fflush(stdin);
  13.       scanf("%c", &nombre[x]);
  14. }
  15.  
  16. for(x=0;x<MAX;x++)
  17. {
  18.       printf("%c", nombre[x]);
  19. }
  20.  
  21.  
  22.  
  23. return 0;
  24. }
  25.  
  26.  

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Llenar Vector Con Letras
« Respuesta #6 en: Sábado 2 de Junio de 2007, 19:24 »
0
Claro, como bien te da el ejemplo AnioN. Estás imprimiendo un caracter(%c) y no un string(%s)
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #7 en: Lunes 4 de Junio de 2007, 02:56 »
0
Cita de: "AnioN"
Código: Text
  1. #include<stdio.h>
  2. #define MAX 3
  3.  
  4. int main() {
  5.  
  6. char nombre[MAX];
  7. int x;
  8.  
  9. for(x=0;x<MAX;x++)
  10. {
  11.       printf("Ingrese nombre:");
  12.       fflush(stdin);
  13.       scanf("%c", &nombre[x]);
  14. }
  15.  
  16. for(x=0;x<MAX;x++)
  17. {
  18.       printf("%c", nombre[x]);
  19. }
  20.  
  21.  
  22.  
  23. return 0;
  24. }
  25.  
  26.  
que raro probe este ejemplo y sale tres veces ingrese nombre y despues me tira hacia afuera!!  estará bien?

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #8 en: Lunes 4 de Junio de 2007, 03:50 »
0
Cita de: "Dhanny"
Cita de: "AnioN"
Código: Text
  1. #include<stdio.h>
  2. #define MAX 3
  3.  
  4. int main() {
  5.  
  6. char nombre[MAX];
  7. int x;
  8.  
  9. for(x=0;x<MAX;x++)
  10. {
  11.       printf("Ingrese nombre:");
  12.       fflush(stdin);
  13.       scanf("%c", &nombre[x]);
  14. }
  15.  
  16. for(x=0;x<MAX;x++)
  17. {
  18.       printf("%c", nombre[x]);
  19. }
  20.  
  21.  
  22.  
  23. return 0;
  24. }
  25.  
  26.  
que raro probe este ejemplo y sale tres veces ingrese nombre y despues me tira hacia afuera!!  estará bien?
esta bien, lo que tenes que hacer es ingresar caracter a caracter. En el define puse 3 a modo de ejemplo, lo podes cambar por el valor que quieras.
Un ppoco mas pulido seria asi.
Código: Text
  1. #include<stdio.h>
  2. #define MAX 3
  3.  
  4. int main() {
  5.  
  6. char nombre[MAX+1];
  7. int x;
  8.  
  9. for(x=0;x<MAX;x++)
  10. {
  11.      printf("Ingrese el %d caracter del nombre:", x+1);
  12.      fflush(stdin);
  13.      scanf("%c", &nombre[x]);
  14. }
  15.  
  16. for(x=0;x<MAX;x++)
  17. {
  18.      printf("%c", nombre[x]);
  19. }
  20.  
  21.  
  22.  
  23. return 0;
  24. }
  25.  

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #9 en: Lunes 4 de Junio de 2007, 03:55 »
0
Anion tiene que ser caracter a caracter? no puedo ingresar el nombre completo de una vez y luego mostrar caracter a caracter con un for?

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #10 en: Lunes 4 de Junio de 2007, 04:01 »
0
Cita de: "Dhanny"
Anion tiene que ser caracter a caracter? no puedo ingresar el nombre completo de una vez y luego mostrar caracter a caracter con un for?
Código: Text
  1. #include<stdio.h>
  2. #define MAX 15
  3.  
  4. int main() {
  5.  
  6. char nombre[MAX+1];
  7. int x;
  8.  
  9.     printf("Ingrese el nombre completo:");
  10.     fflush(stdin);
  11.     gets(nombre);
  12.  
  13. for(x=0;x<MAX;x++)
  14. {
  15.     printf("Letra numero %d : %c\n", x+1, nombre[x]);
  16. }
  17.  
  18. return 0;
  19. }
  20.  

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #11 en: Lunes 4 de Junio de 2007, 17:14 »
0
logre ordenar un vector de numeros pero de letras ni idea pueden ayudarme?
este es que ocupe para ordenar el vector con numeros.

Código: Text
  1.  
  2.   for(x=0;x<10;x++)
  3.   {
  4.     for(l=x+1;l<10;l++)
  5.     {
  6.       if(ar[x]>ar[l])
  7.       {
  8.         aux=ar[x];
  9.         ar[x]=ar[l];
  10.         ar[l]=aux;
  11.       }
  12.     }
  13.   }
  14.  
  15.  

Dhanny

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: Llenar Vector Con Letras
« Respuesta #12 en: Lunes 4 de Junio de 2007, 17:56 »
0
he hecho un codigo pero no he ocupado la funcion strcmp, estará bien todavia no se por que ordena siendo que son string y no numeros.

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<string.h>
  5.  
  6. void main()
  7. {
  8.  
  9.   char ar[15];
  10.   int x,l,aux;
  11.  
  12.   clrscr();
  13.   printf("Ingrese el nombre completo:");
  14.   fflush(stdin);
  15.   gets(ar);
  16.  
  17.   //
  18.   for(x=0;x<strlen(ar);x++)
  19.   {
  20.     for(l=x+1;l<strlen(ar);l++)
  21.     {
  22.       if(ar[x]>ar[l])
  23.       {
  24.         aux=ar[x];
  25.         ar[x]=ar[l];
  26.         ar[l]=aux;
  27.       }
  28.     }
  29.   }
  30.  
  31.   //
  32.  
  33.   for(x=0;x<strlen(ar);x++)
  34.   {
  35.   printf("Letra numero %d : %c\n", x+1, ar[x]);
  36.   }
  37.  
  38.  
  39.  
  40.   getch();
  41.  
  42. }
  43.  
  44.  

funciona super bien pero creo que no es lo correcto o no?
alguien tiene un ejemplo que funcione pero con strcmp