tablice znakow

0
#include <stdio.h>
#define MAXLINE 1000

int getline(char line[], int maxline);
void copy(char to[], char from[]);

main()
{
int len;
int max;
char line[MAXLINE];
char longest[MAXLINE];

max=0;
while((len=getline(line, MAXLINE))>0)
    if(len>max){
    max=len;
    copy(longest, line);}
if(max>0)
   printf("\n%s", longest);
return 0;
}


int getline(char s[], int lim)
{
    int c,i;

for(i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n';++i) 
    {
        s[i]=c;
    }
if(c=='\n'){   /*Tu nie rozumiem dlaczego c nie zajeło miejsca innej litery przy przykładowym ciągu zxcvbnm s[6]=m a c=' ' warunek nie spełniony więc przechodzimy do if to dlaczego c[6]=/=' ' */                     
  s[i]=c;  /* CZy tu następuje nadpisanie już zapisanego pola tabeli?
  ++i;  
}
s[i]='\0';
return i;
}

void copy(char to[], char from[])
{
     int i;

     i=0;
     while((to[i]=from[i])!='\0')
     ++i;
     }
2
  1. Zapoznaj się z pojęciem formatowania kodu
  2. Nigdy nie słyszałem aby ktoś nauczył się karate oglądając filmy z Bruce Lee, więc pisz kody sam zamiast analizować cudze.
  3. Albo c jest ostatnim wczytanym znakiem albo nie jest to '\n' (w przypadku '\n' pętla skończyłaby się na poprzednim kroku)
  4. W pętli po s[i]=c; zawsze następuje ++i zaś dopiero później sprawdzenie warunku.

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