Я учусь и решения упражнений из K & R. Я переписал программу, указанную в разделе 1.9,Невозможно вывести длинная строка
Постановка задачи: написать программу, которая считывает набор строк текста и печатает длинный ,
Программа:
#include <stdio.h>
#define MAX 100
int getlinetext(char s[]);
int main(void)
{
char longest[MAX];
int longestlenght = 0;
char line[MAX];
int lenght;
while ((lenght = getlinetext(line)) > 0){
if(lenght > longestlenght){
longestlenght = lenght;
int i = 0;
while (line[i] != '\0'){
longest[i] = line[i];
i++;
}
longest[i] = '\0';
}
}
printf("The longest lenght is %d\n", longestlenght);
printf("%s\n", longest);
return 0;
}
int getlinetext(char line[])
{
int i=0;
int c;
while ((c = getchar()) != EOF){
line[i] == c;
if (c == '\n')
break;
i++;
}
line[i] = '\0';
return i;
}
Ожидаемый результат:
hello
world!!
The longest lenght is 7
world!!
Фактический выход:
hello
world!!
The longest lenght is 7
�
Какой-то образом, я могу напечатать правильную длинную длину, но не сама строка. Я думал, что пропущу нулевой байт, но он там, и ошибка все еще сохраняется.
Пожалуйста, укажите ввод, ожидаемый выход и фактический выход. – piyushj
Это менее 100 символов. – x899
Я отредактировал вопрос. Пожалуйста, проверьте. – x899