Jump to content

Duvida em criar um array string dinamico


Recommended Posts

Posted (edited)

Boas!

Estou a fazer um trabalho, onde tenho um ficheiro e quero dividi-lo em strings. Nao estou a conseguir fazer um array strings.

#include <stdio.h>
int main(){
FILE *fp;
int ch, i,j, cont_cj,k,l;
char *s, *s_nova, *nome_cj;
conrev conrev1[2];
fp= fopen("lista.txt","r")
i=0;
j=0;
l=0;
k=0;
cont_cj=-1;
s = malloc(300*sizeof(char));
while((ch=fgetc(fp))!=EOF){

 s[i]=ch;
 if(s[i]=='\n'){
 cont_cj++;
 }
 i++;
}
s_nova= malloc(i*sizeof(char));
strcpy(s_nova,s);
free(s);
nome_cj = malloc(20*sizeof(char));
cont_cj=0;
while(i!=0){
   while(s_nova[j]!='\n' && j!=0){
   nome_cj[k]=s_nova[j];
   j++;
   k++;
   i--;
 }
 if(s_nova[j]=='\n' || j==0){
  j++;
  i--;
 }
}
free(nome_cj);
fclose(fp);
}

Alguem pode ajudar sff...

Edited by pmg
Falta LP no GeSHi
Posted

deverás saber que um string não deixa de ser uma array em que o byte '\0' significa o fim da string

logo, o que pretendes será uma array de arrays

achas que com esta dica consegues chegar lá ?

Obrigado essa parte ainda consegui entender o meu problema é como colocar memoria suficiente para o array devido a não saber quantas posições tem,

será q podes ajudar sff.

Posted

não parece que estejas preparado para resolver esse tipo de questão

cria um suficientemente grande e deixa o problema de te adaptares para mais tarde

quando se resolve problemas académicos, a primeira coisa a fazer é : KISS (Keep It Simple, Stupid)

se quiseres complicar, somente depois de teres uma solução válida

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.