Приветствую Вас Гость | RSS

Язык программирования С

Суббота, 04.05.2024, 01:55
Главная » 2010 » Апрель » 7 » 1.9. Массивы символов. Упражнение 1.17.
20:07
1.9. Массивы символов. Упражнение 1.17.

Упражнение 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;

}

Результат работы программы для строк длиннее 10 символов:

длина строки
Просмотров: 2698 | Добавил: brainfrog | Теги: программа, 80 символов, упражнение, строки | Рейтинг: 0.0/0
Всего комментариев: 2
2 klolik  
0
Code
#include <stdio.h>  

int main( int argc, char** argv )  
{  
#define MINSIZE 81  
char line[MINSIZE];  
line[MINSIZE-1] = '\0';  

for ( int i = 0, c; (c = getchar()) != EOF; ) {  
if ( i < MINSIZE-1 ) line[i] = c; // i начинается от 0 => при  
else if ( i >= MINSIZE ) putchar( c ); // i = MINSIZE-1,  
else printf("%s%c", line, c ); // lenght_string = MINSIZE  

if ( c == '\n' ) i = 0;  
else ++i;  
};  

return 0;  
};

1 klolik  
0
#include <stdio.h>

int main( int argc, char** argv )
{
#define MINSIZE 81
char line[MINSIZE];
line[MINSIZE-1] = '\0';

for ( int i = 0, c; (c = getchar()) != EOF; ) {
if ( i < MINSIZE-1 ) line[i] = c; // i начинается от 0 => при
else if ( i >= MINSIZE ) putchar( c ); // i = MINSIZE-1,
else printf("%s%c", line, c ); // lenght_string = MINSIZE

if ( c == '\n' ) i = 0;
else ++i;
};

return 0;
};

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]