• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gois

array bidimensional de strings

2 mensagens neste tópico

boas, 

Problema:

Num ficheiro txt em binario tenho 3 pessoas com as caracteristicas nome e  montante.

Caso das 3 pessoas, 2  tenham o nome igual, a funçao  deve copiar esse nome para um array bidimensional de strings em que, o espaço para o array deve ser requisitado dinamicamente pela função e deve ter o número de linhas necessário para armazenar todos os nomes (cada linha deve ter 100 caracteres).

A minha dúvida predem se exactamente em copiar a string para o array em que provavelmente teria que utilizar malloc em que as unicas vezes que utilizei foi  para listas ligadas

typedef struct lev cliente;

struct lev{ //estrutura do usuarios de multibanco
char nome[100];
int montante;
};

int mais_do_que_um_lev(FILE *f, int *lev) //ficheiro passado como argumento e o endereço do numero de quantidade de levantamento para clientes que levantaram dinheiro mais que uma vez
{


char nomeanterior[100];
        cliente banco;
char str[][100]; //1º minha nova string

fread(&banco, sizeof(cliente), 1, f); 

while(fread(&banco, sizeof(cliente), 1, f)==1)
{


	if(strcmp(nomeanterior, banco.nome) == 1)
	{
	/*Dúvida*/
                 str = malloc(sizeof(char));//1º requesitar espaço para a minha nova string do tipo caracteres
                 
			/*incompleto*/
	}


	strcpy(nomeanterior, banco.nome);
}



}

P.s- Comentarios com //1º (modificaçao depois de postar)

obrigado..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:)

aqui vai um exemplo como alocar dinamicamente aquilo que pretendes, agora e so alterar ao teu problema :)




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

main()
{
int **mat; /* matriz representada por um vetor
de ponteiros */
int i,m=2,n=2;
char a[50];
mat = (int**) malloc(m* sizeof(int*));
for(i = 0; i< m; i++)
{
mat[i] = (int*) malloc(n*sizeof(int));
}

mat[0] // para strings
mat[0][0]=2;
printf(" o nome e %d\n",mat[0][0]);
fflush(stdin);
getchar();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora