Стандартный пример из ANSI C:
#include <stdio.h>
#define MAXLINE 10
int getline_check (char line[], int maxline);
void copy (char to[], char from[]);
main() {
int len; /* current length */
int max; /*max checked length*/
char line[MAXLINE]; /*current string*/
char longest[MAXLINE]; /*longest string*/
max = 0;
while ((len = getline_nocheck ()) > 0)
if (len > max) {
max = len;
copy (longest, line);
}
if (max > 0) /* non-zero string ? */
printf("%s\n", longest);
return 0;
}
/* getline: reads string to s, returns length */
int getline_check(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;
}
/*copy: copy from "from" to "to"; to is big*/
void copy(char to[], char from[]) {
int i;
i = 0;
while ((to[i] = from[i]) != '\0')
++i;
}
task:
модифицировать main() так, чтобы ограничений на размер строки не было.
не пойму:
1. если только в main(), то остается же ещё getline с проверкой...
2. а в main() при определении символьных массивов-уже ограничение.
т.е. можно как-то определить массив неопределенного размера,
чтобы вбить туда впоследствии самую длинную строку ?
что-то не дойдет никак, что хотели сказать авторы.
вопрос:
В каком направлении думать ? )))
Ответ на:
комментарий
от welkam
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум K&R Задача 1.16 (2015)
- Форум [C]Траблы с объявлением функции (2012)
- Форум [C, K&R примеры] Примеру 1.9, передача аргумента в функцию, откуда возбмется строка (2010)
- Форум Керниган-Ричи, задание 1.16 (2009)
- Форум [c, K&R] По какому событию должен выводится результат? (2010)
- Форум Массивы указателей K&R (2015)
- Форум Программа из K&R вопросы по warnings, полученные от gcc (2015)
- Форум oop в «чистом» си (2005)
- Форум Помогите поправить код си (2012)
- Форум Вопросы по коду из K&R readlines() strcpy(p, line) (2015)