Vector de cadena de caracteres

Iniciado por NicolasPileci, 6 Agosto 2019, 05:11 AM

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

NicolasPileci

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!

K-YreX

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.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

NicolasPileci

Muchas gracias!

Funciono perfecto y lo explicaste de manera excepcional.

Saludos!