Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
10 / 10 / 6
Регистрация: 27.07.2014
Сообщений: 269

Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным числом пробелов

27.07.2014, 20:02. Показов 3649. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Упражнение 1.20. Напишите программу detab, заменяющую символы табуляции во вводимом тексте нужным
числом пробелов (до следующего "стопа" табуляции). Предполагается, что "стопы" табуляции расставлены на
фиксированном расстоянии друг от друга, скажем, через n позиций. Как лучше задавать n — в виде значения
переменной или в виде именованной константы?

Помогите понять задание! '\t' - табуляция равна по умолчанию четырем пробелам. То есть мне надо написать программу, которая будет заменять при встрече табуляции, добавлять четыре пробела ? и если у меня будет две сподрят табуляции, то через n фиксированное я должен делать пробеами отступы между ними ?
Мне просто не понятно, что нужно сделать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.07.2014, 20:02
Ответы с готовыми решениями:

Заменить символы табуляции в заданном тексте нужным числом пробелов (не могу понять условие задачи)
со "стопами" ясно, но как обрабатывать несколько подряд стоящих символов табуляции: а) заменять их пробелами в пределах одного стопа,...

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

Напишите программу, заменяющую в тексте все прописные латинские буквы на строчные
Напишите программу, заменяющую в тексте все прописные латинские буквы на строчные. Напишите пожалуйста целую прогу

5
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
27.07.2014, 20:06
не знаю что такое стоп табуляции... вроде табуляция это просто символ '\t', так что идешь в цикле по строке и при встрече этого символа перевыделяешь память с соответствующим копированием элементов массива и вставляешь пробелы
1
10 / 10 / 6
Регистрация: 27.07.2014
Сообщений: 269
27.07.2014, 22:43  [ТС]
Все, разобрался! табуляция - это 8 символов(пробелов), а не 4 как я думал сначала. Ширина табуляции в пробелах зависит от позиций символа '\t' в строке. Если строку поделить на блоки из 8 символов, то ширина будет зависеть от положение '\t' в этом блоке и будет равна количеству недостающих символов до целого блока из 8 символов(пробелов). Например у нас есть строка "adf'\t'tqet"
то табуляция будет равна 8-3 = 5 - пробелам. Если перед табуляцией с начала блока 7 символов, то будет один пробел, если 0 символов в блоке, а сам таб символ первый, то будет 8 пробелов
2
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 2
08.04.2015, 15:48
Я тоже не понимаю задания.
AVATAR, почему табуляция - 8 символов?
Дайте, пожалуйста, определения, что такое табуляция, что такое стоп табуляции?
Поискал по форумам, такое ощущение, что только я этого не понимаю.
0
 Аватар для yrceus
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
29.10.2015, 20:04
Википедия говорит тоже про обычно 8 знакомест, у меня четыре, если правильно понял. Двигает позицию табуляции, если в блоке более трех символов.
0
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 3
11.10.2017, 16:15
Вот решение, в задаче вспоминается принцип работы, пишущей машинки. Который плавно перешел в наши дни.

Горизонтальная табуляция (HT, TAB) — управляющий символ таблицы ASCII с кодом 0916, используется для выравнивания текста в строках. Встретив этот символ, терминал перемещает каретку (или курсор) вправо на ближайшую позицию табуляции. Традиционно эти позиции располагаются каждые 8 знакомест, в колонках 1, 9, 17, 25… Вводится при помощи клавиши Tab ↹, во многих языках программирования обозначается как \t.
Если отправить на печать текст (символ табуляции обозначен стрелкой)

один→два→три→четыре
1→2→3→4
5→6→7→8
9→10→11→12

получим такую распечатку:
один два три четыре
1 2 3 4
5 6 7 8
9 10 11 12

ссылки
Кликните здесь для просмотра всего текста


код
Кликните здесь для просмотра всего текста

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
/* Write a Program detab,which replaces tabs in the input with a proper 
  number of blanks to spaces */
 
#include<stdio.h>
#define TABINC 8
 
int main(void)
{
  int nb,pos,c;
 
  nb = 0;
  pos = 1;
 
  while((c=getchar())!=EOF)
  {
    if( c == '\t')
    {
      nb = TABINC - (( pos - 1) % TABINC);
 
      while( nb > 0)
      {
        putchar('#');
        ++pos;
        --nb;
      }
    }
    else if( c == '\n')
    {
      putchar(c);
      pos = 1;
    }
    else
    {
      putchar(c);
      ++pos;
    }
  }
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2017, 16:15
Помогаю со студенческими работами здесь

Во вводимом с клавиатуры тексте удалить все пробелы, знаки табуляции
Нужно написать программу, которая во вводимом с клавиатуры тексте удалит все пробелы, знаки табуляции и выведет количество удаленных...

Избавиться от пробелов, табуляции и переносов строки в введенном тексте
Вообщем ребята, возникла проблема, создал класс, в него запихал функции, которые помогут мне избавиться от пробелов, табуляции и переносов...

Составить программу заменяющую во введенном строковом выражении подстроку нужным числовым значением
Составить и отладить программу, заменяющую во введенном строковом выражении указанную подстроку нужным числовым значением в строковом...

Составить программу, заменяющую во введенном строковом выражении указанную подстроку нужным числовым значением
Составить и отладить программу, заменяющую во введенном строковом выражении указанную подстроку нужным числовым значением в строковом...

Составить и отладить программу, заменяющую во введенном строковом выражении указанную подстроку нужным числовым значение
Составить и отладить программу, заменяющую во введенном строковом выражении указанную подстроку нужным числовым значением в строковом...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru