Estimados,
buenas tardes.
Necesito hacer un codigo que me permite ingresar una descripcion por cada cada articulo de un vector.
Lo tengo hasta ahora es lo siguiente:
Funcion
void validarVectorDesc(char* [], int);
Main
validarVectorDesc(des, TAM_DES);
Funcion Codificada
void validarVectorDesc(char *desc[TAM], int LS)
{
do
puts("Ingrese descripcion de articulo: ");
gets(*desc);
while(strlen(*desc) < LS);
}
Siento tener un problema en la lógica pero no logro descifrar cual.
Desde ya muchas gracias!
Entiendo que lo que quieres hacer es un vector de cadenas de caracteres. Entonces como una cadena de caracteres ya es un vector, pues necesitas un vector de vectores. Un vector de vectores es lo mismo que una matriz.
#include <stdio.h>
#define MAX_ARTICULOS 4
#define MAX_SIZE 100
int main(){
char descripciones[MAX_ARTICULOS][MAX_SIZE];
for(size_t i = 0; i < MAX_ARTICULOS; ++i){
printf("Introduce la descripcion del articulo %d: ", i+1);
fgets(descripciones[i], MAX_SIZE, stdin);
}
for(size_t i = 0; i < MAX_ARTICULOS; ++i)
printf("Descripcion %d: %s", i+1, descripciones[i]);
}
Ahí tienes un ejemplo de cómo trabajar con vectores de cadenas. Piensa que cada línea es una cadena (una frase) y cada columna es un caracter.
Puedes probar ese pequeño código para que veas cómo funciona o intentar hacer algún cambio para entender el funcionamiento. También puedes por ejemplo pedir el número de artículos a tratar y si es menor que <MAX_ARTICULOS> usarlo como condición del bucle.
Muchas gracias!
Funciono perfecto y lo explicaste de manera excepcional.
Saludos!