2015-04-23 9 views
0

Я пытаюсь запустить этот пример из (dennis ritchie book), однако он не находит самую длинную линию, любую идею?C: поиск самой длинной строки

main.c

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

#include "other.h" 



    int main() 
    { 
     /*printf("Hello world!\n"); 
     printf("%d\n",getmynumber()); 


     start of a new program%= */ 

     int len; 
     int max; 
     char line[MAXLINE]; 
     char longest[MAXLINE]; 

     max = 0; 
     while ((len = getLine(line, MAXLINE)) > 0) 
      if (len > max){ 
       max = len; 
       copyL(longest,line); 
      } 
     if (max > 0) 
      printf("%s", longest); 

     return 0; 
    } 

other.c

#include <stdio.h> 
#include "other.h" 

int getmynumber(void){ 
    return 7; 
} 


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'){ 
     s[i] = c; 
     ++i; 
    } 

    s[i] = '\0'; 
    return i; 

} 


void copyL(char to[], char from[]) 
{ 
    int i; 
    i = 0; 
    while ((to[i], from[i]) != '\0') 
     ++i; 
} 

other.h

#ifndef OTHER_H_INCLUDED 
#define OTHER_H_INCLUDED 
#define MAXLINE 1000 


int getmynumber(void); 
int getLine(char line[], int maxline); 
void copyL(char to[], char from[]); 


#endif // OTHER_H_INCLUDED 

Использование отладчика: выглядит как i в функции copyL не увеличивается ... любые идеи почему?

code blocks debug

FIX:

while ((to[i] = from[i]) != '\0'){ 
    ++i; 
} 
+0

Что происходит, когда вы запускаете его? –

+0

MAXLINE находится в файле заголовка ... – krisdigitx

+0

Что вы вводите? Каков ваш фактический и ожидаемый результат? –

ответ

3

Я думаю, что вы неправильно переписал код. Эта линия:

while ((to[i], from[i]) != '\0') 

, вероятно, неверно. Выражение (to[i], from[i]) представляет собой экземпляр оператора запятой, который в качестве результирующего значения выдает правую часть. Я считаю, что вместо этого это было задание.

+0

спасибо, что отладка доказала это правильно ... прилагается скриншот ... – krisdigitx

Смежные вопросы