Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Fon Eberkopff
2 / 2 / 2
Регистрация: 06.02.2015
Сообщений: 20
Записей в блоге: 23
#1

Напишите программу для подсчётов пробелов, знаков табуляции и символов конца строки - C (СИ)

07.02.2015, 16:31. Просмотров 850. Ответов 0
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
/* K&R: Упражнение 1.8. Напишите программу для подсчётов пробелов,
 * знаков табуляции и символов конца строки.
 */
 
/* P.s. Когда надоест вводить символы нажмите Ctrl+D если Вы в Linux-е
 * Если Вы в windows, то отформатируйте HDD (SSD), установите Linux и нажмите Ctrl+D )))
 */
 
int main()
{
    int c,sum_space, sum_tab, sum_enter;
    
    sum_space=sum_tab=sum_enter=0;
    
    while((c = getchar()) != EOF) {
        if(c == ' ') sum_space++;
        if(c == '\t') sum_tab++;
        if(c == '\n') sum_enter++;
    } 
    printf("sum_space = %d\nsum_tab = %d\nsum_enter = %d\n",sum_space,sum_tab,sum_enter);
    return 0;
}
А вот версия программы, которая учитывает строку в ситуации если Вы вызвали EOF сразу после набора текста...
http://clc-wiki.net/wiki/K%26R2_solutions:Chapter_1:Exercise_8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
 
int main(void)
{
  int blanks, tabs, newlines;
  int c;
  int done = 0;
  int lastchar = 0;
 
  blanks = 0;
  tabs = 0;
  newlines = 0;
 
  while(done == 0)
  {
    c = getchar();
 
    if(c == ' ')
      ++blanks;
 
    if(c == '\t')
      ++tabs;
 
    if(c == '\n')
      ++newlines;
 
    if(c == EOF)
    {
      if(lastchar != '\n')
      {
        ++newlines; /* this is a bit of a semantic stretch, but it copes
                     * with implementations where a text file might not
                     * end with a newline. Thanks to Jim Stad for pointing
                     * this out.
                     */
      }
      done = 1;
    }
    lastchar = c;
  }
 
  printf("Blanks: %d\nTabs: %d\nLines: %d\n", blanks, tabs, newlines);
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2015, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите программу для подсчётов пробелов, знаков табуляции и символов конца строки (C (СИ)):

Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным числом пробелов - C (СИ)
Упражнение 1.20. Перевод: Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным числом пробелов (до следующего...

Удаление лишних пробелов и знаков табуляции - C (СИ)
Помогите решить проблему, удаляет лишние пробелы, а знаки табуляции нет, нужно чтобы удаляло знаки табуляции и лишние ещё пробелы. Если что...

Записать строку с удалением пробелов и символов табуляции с использованием функций - C (СИ)
Не работает функция delspace. #include &lt;stdio.h&gt; #define LIM 1000 // предел длины строки int get_line(char...

Преобразовать символы конца строки и табуляции в управляющие последовательности - C (СИ)
Задание: написать функцию escape(s, t), которая бы преобразовывала символы наподобии конца строки и табуляции в управляющие...

Напишите программу для копирования входного потока в выходной с заменой знаков - C (СИ)
Предлагаю так: #include &lt;stdio.h&gt; int main() { int c; while((c=getchar())!=EOF) { if(c=='\t') printf(&quot; \\t &quot;); else...

Подсчет символов конца строки - C (СИ)
Написал программу подсчета символов конца строки: #include &lt;stdio.h&gt; main() { long c, nc; nc = 0; while ((c =...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2015, 16:31
Привет! Вот еще темы с ответами:

Копирование входного потока в выходной с заменой знаков табуляции на \t - C (СИ)
Условия: Напишите программу для копирования входного потока в выходной с заменой знаков табуляции на \t, символов возврата назад...

Признаком конца ввода строки является ввод трех подряд символов, не являющихся цифрами - C (СИ)
Признаком конца ввода строки является ввод трех подряд символов, не являющихся цифрами. как это реализовать в коде? как можно проще...

Написать программу удаления всех пробелов из введенной строки - C (СИ)
Здравствуйте! Помогите, пожалуйста с заданием. Написать программу удаления всех пробелов из введенной строки

Заменить строки из пробелов минимальным числом табуляций и пробелов - C (СИ)
Правильно ли я понимаю, что если табуляция равна 5 пробелам, строка &quot;I***Love**You&quot;, где * - это пробел, то на выходе имеем: &quot;I****Love*You...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru