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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wolkodav
604 / 457 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
#1

Выровнять строку в ширину - C++

08.01.2013, 22:33. Просмотров 686. Ответов 2
Метки нет (Все метки)

Добрый вечер народ. Помогите или алгоритм или реализация у кого есть на такую задачу.
Дана строка, и её надо выровнять в ширину(ширина задаётся). Слова резать нельзя. Т.е. надо планомерно добавлять пробелы между словами внутри строки.
Надеюсь задача нормально объяснил.

Добавлено через 30 минут
Помогите!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 22:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выровнять строку в ширину (C++):

Алгоритмы поиска кратчайших путей в ширину и двунаправленный в ширину - C++
Реализовать алгоритм поиска кратчайшего пути. Двунаправленный поиск в ширину. Вот есть 2 алгоритма поиска в ширину. ...

Выровнять текст - C++
Как правильно выровнять ? Я использовал " \t ",но если имя больше то сдвигается.

Выровнять матрицу на экране - C++
Как мне надо изменить вот этот код чтобы матрица на скрине выходила ровной double a = { { 7.6, 5.0, 2.4 }, { -1.3, 0.2, 5.8 }, ...

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

выровнять столбцы в матрице - C++
Помогите пожалуйста, выровнять столбцы в матрице. Что бы цифры были друг под другом, а не в разброс. Сказали добавить printf("%4d",a). Но...

Нужно выровнять текст - C++
Нужно выровнять текст сейчас нужно ноутбук:США ноутбук:США Молдова Молдова как так...

2
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
09.01.2013, 00:27 #2
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
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include "iostream"
using namespace std;
 
void SetSpace(char *str)    // вставка одного пробела между каждым словом
{
    for (int i=0; i<strlen(str); i++)
        if (str[i] == ' ')
        {
            for (int j=strlen(str)+1; j>i; j--)
                str[j] = str[j-1];
 
            int j = i;
            while (str[j] == ' ')
                j++;
 
            i = j;
        }
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    
    char str[300];
    int W;
 
    cout << "Введите строку:" << endl;  
    cin.getline(str, 300);
    
    cout << "Введите ширину: ";
    cin >> W;
 
    if (W <= strlen(str))
        cout << str << endl;
    else
    {
        int n_space = 0;            // количество пробелов в строке
 
        for (int i=0; i<strlen(str); i++)
            if (str[i] == ' ')
               n_space++;
 
        int k = (W - strlen(str)) / n_space;    // кол-во пробелов, которые надо вставить после каждого слова
 
        while (strlen(str) < W)
            SetSpace(str);
 
        cout << str << endl;
    }
 
    
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 6 минут
Лишнее поубрал:

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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    
    char str[300];
    int W;
 
    cout << "Введите строку:" << endl;  
    cin.getline(str, 300);
    
    cout << "Введите ширину: ";
    cin >> W;
 
    if (W <= strlen(str))
        cout << str << endl;
    else
    {
        while (strlen(str) < W)
            SetSpace(str);
    }
 
 
    cout << str << endl;
 
    system("pause");
    return 0;
}
1
Wolkodav
604 / 457 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
09.01.2013, 00:49  [ТС] #3
Спасибо уже сам вымучал.

Добавлено через 8 минут
Если решение надо кому могу скинуть сюда.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 00:49
Привет! Вот еще темы с ответами:

Выровнять массив при выводе - C++
Доброго утра!!)) Прошу без спойлера на решение задачи, хочу не много поломать голову))) Вопрос только вот в чём, как в c++ выровнить...

Как выровнять столбики в ответе? - C++
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; double sum1(double x, double n); double sum2(double x, double eps); ...

Выровнять текст по левому краю - C++
Доброго времени суток.Помогите пожалуйста осталась одна задача,а я понятия не имею как её делать.:wall: Нужно написать обработчик...

Выровнять текст по вертикали в окне ввода - C++
Как сделать чтобы текст в окне ввода был по центру? Ничего в гугле не нашел по этому поводу... Шрифт вполне уместился бы в окне,...


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

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

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