Answer the question
In order to leave comments, you need to log in
What for in this case to register len-1?
Упражнение 1.17. Напишите программу для вывода всех строк входного потока, имеющих длину более 80 символов.
/* программа вывода всех строк входного потока, имеющих длину более 80 символов */
#include "stdafx.h"
#define MAXLINE 1000 /* максимальная длина строки в потоке */
int getline(char line[], int maxline);
int main()
{
int len; /* длина текущей строки */
char line[MAXLINE]; /* текущая введенная строка */
while ((len = getline(line, MAXLINE)) > 0)
/* если количество символов в строке больше 80, выводим эту строку */
===============================================================
if (len - 1 > 80) /* "len - 1" не считаем нулевой символ '\0' */
===============================================================
printf("This string is longer than 80 characters: %s", line);
return 0;
}
/* getline: считывает строку в s, возвращает ее длину */
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;
}
Answer the question
In order to leave comments, you need to log in
The character '\0' means the end of the line, it is "official" in this case.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question