Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выравнивание строк разной длины по центру, C 
:(
    Опции темы
hapock
  Дата 2.12.2014, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.1.2014

Репутация: нет
Всего: нет



Доброго вечера. 

Есть 3 строки которые расположены по центру экрана, но начинаются с четко заданной позиции (одной и той же по оси Y)
Задачка такова, что нужно заполнить определенным количеством пробелов слева, чтобы все строки (учитывая их длину) были по центру.

Пример строк:

Код
This is string 1 text so long
This is string 2 short
This very short


Т.е. они так и располагаются на экране
А нужно сделать чтобы они в зависимости от своей длины выглядели вот так в результате:
Код
This is string 1 text so long
    This is string 2 short
        This very short


На языке С.

Спасибо!
PM MAIL   Вверх
baldina
Дата 2.12.2014, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



1. выясняете длины строк (функция strlen), определяете самую длинную
2. для каждой строки 
  2-1. вычисляете разницу её длины с самой длинной
  2-2. эту разницу делите пополам
  2-3. дополняете строку слева пробелами числом равным половине разницы.
     2-3-1. определяете новый размер строки
     2-3-2. создаете новую строку нужного размера (malloc)
     2-3-3. записываете в неё нужное число пробелов
     2-3-4. копируете в хвост дополняемую строку (strcpy или strcat)

если место под строки зарезервировано достаточно для хранения самой длинной, то 2-3-2. не выполнять, работать с исходной строкой, а 2-3-3 и 2-3-4 поменять местами.

не будет получаться - пишите, показывая ваш код. 
     
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.