Kopiowanie tablicy znaków i błąd pamięci

0
 while(!feof(file))
    {
        int len = strlen(buf)-1;
        char c;
        c=fgetc(file);
        if(c!='\0')
        {
            buf[len+1]=c;
            int i;
            for(i=0; i<n; i++)
            {
                if(strcmp(buf, dict[i].code)==0)
                {
                    putc(dict[i].ch, stdout);
                    strcpy(buf, "");
                    break;
                }
            }
            
        }
    }

Pojawia się taki błąd:
Never use <bits/string3.h> directly; include <string.h> instead.
Nie rozumiem dlaczego to się pojawia. Oczywiście string.h jest includowany.

0

A jak jest zadeklarowany "buf" ?
Powiedz też co próbujesz osiągnąć bo jak dla mnie to wygląda jak jeden wielki WTF.

0
 buf[8]="";

Jest pewien kod np. 001001110011... (niekoniecznie taki ale z 0 i 1)
Np.

dict[0].code == "001"
dict[0].ch == 'j'
dict[1].code=="11"
dict[1].ch == 'a'
...itd.

I to ma zamieniać mi na literki. (Pewnie da się dużo prościej, ale ja na to wpadłem).

0

Na oko:

int i,c,len;
for(len=i=0;(c=fgetc(file))!=EOF;i=0)
  {
   buf[len]=c;
   buf[++len]=0;
   while((i<n)&&(strcmp(buf,dict[i].code))) ++i;
   if(i<n)
     {
      putc(dict[i].ch,stdout);
      len=0;
     }
  }
0

Twój kod nie działa tak jak chciałem, ale część mi pomogła wpaść na pewien pomysł i teraz już wszystko chodzi jak powinno.

1 użytkowników online, w tym zalogowanych: 0, gości: 1