| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Anew
Registrado: 04 Jul 2014 Mensajes: 1
| Publicado: 04/07/2014 8:59 pm | | | Título: Imprimir vectores string en procedimientos |
| Hola. Me gustaría saber como se imprimen los vectores string en C. Yo ya intenté imprimirlos con printf y no logré ningún resultado.
# include <stdio.h> # include <stdlib.h> # include <string.h> void talle2(char array2 [6]) { int i; for (i=0;i<6;++i){ array2[i]=0; } } void talle (char array2 [6]) { int i; for (i = 0; i < 6; ++i) { if (array2[i]!= 0) { printf("numero de talle:%d", array2[i]); printf("\n"); } } } int main () { void talle (char array2 [6]); void talle2(char array2 [6]); char nombre [3]; char auxnombre [3]; int counter2=0; int votro2=0; int votro1=1; char tall [6]; talle2(tall); while (votro1!=0) { ++counter2; printf("ingresar código de producto\n"); scanf("%d",&tall[counter2]); gets(nombre); strcpy(auxnombre,nombre); printf("ingresar talle\n"); scanf("%s",&nombre); printf("ingresar un número distinto de 0"); scanf("%d",&votro1);
} printf("talle: %s",nombre); talle(tall); system ("PAUSE"); return 0; } |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7527 Ubicación: Mexico
| Publicado: 14/07/2014 6:52 am | | | Título: |
| Para imprimir una cadena de caracteres en la salida estándar se utiliza la función printf, en tu caso la impresión del nombre funcionara correctamente solo si este consiste de un máximo de dos caracteres lo cual (por razones obvias) no es practico.
Otro problema es leer cada uno de los códigos y almacenarlo en el array "tall" ya que los códigos son de tipo int mientras que los elementos del array "tall" son de tipo char. Para que funcione debes cambiar la declaración del array a "int tall[6]".
Algunos mas son leer el nombre dos veces en la misma iteración y copiar este al array "auxnombre" (no tiene caso ya que el contenido de ese array no lo utilizas en ninguna operación posterior).
Un programa de ejemplo basado en el tuyo para darte una idea mejor del uso de arrays, printf y scanf:
| Código: | #include <stdio.h>
#define MAX_CHARS 128 #define MAX_ARTICULOS 6
int main(void) { char nombre[MAX_CHARS]; int codigo[MAX_ARTICULOS]; int talle[MAX_ARTICULOS]; int i; int num_articulos; char continuar = 'S'; puts("Introduce tu nombre:"); fgets(nombre, MAX_CHARS, stdin); /* Lectura de cada uno de los articulos */ i = 0; while (i < MAX_ARTICULOS && continuar == 'S'){ printf("Articulo No %d\n", i + 1); puts("Indica el codigo:"); scanf("%d", codigo + i); puts("Indica el talle:"); scanf("%d", talle + i); i++; if (i != MAX_ARTICULOS){ puts("Deseas continuar? S/N"); scanf(" %c", &continuar); } } num_articulos = i; /* Impresion de datos */ printf("Nombre: %s", nombre); for (i = 0; i < num_articulos; i++) printf("%d\t%d\n", codigo[i], talle[i]); return 0; } |
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |