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

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

Войти
Регистрация
Восстановить пароль
 
Tatyana_88
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 2
#1

Отформатировать текст по n символов в строке - C++

25.12.2009, 14:46. Просмотров 703. Ответов 2
Метки нет (Все метки)

Отформатировать текст по n символов в строке (встасить равномерно между словами пробелы, чтобы длина строк была равна n).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2009, 14:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отформатировать текст по n символов в строке (C++):

Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке - C++
Текст, состоящий не более чем из 255 символов, разбейте на строки длиной не более 50 символов в строке. Переносите только на месте...

Переписать текст на страницу с числом символов в строке M - C++
дана задача 1.Исходный текст записан на странице с числом символов в строке L. Переписать его на страницу с числом символов в...

Отформатировать текст, находящийся в файле - C++
помогите,решить программу..на языке С... написать на Code:Blockse

Отформатировать текст по правому краю - C++
Помогите с программой, не понимаю как это сделать: Разработать программу, которая разбивает заданный текст на две колонки и...

Отформатировать текст кода в читаемом виде - C++
Здравствуйте, помогите пожалуйста отформатировать текст кода в читаемом виде: #include <stdio.h> #include <stdlib.h> #include...

Отформатировать текст: каждое предложение с новой строки, между словами - по одному пробелу - C++
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между...

2
easybudda
Модератор
Эксперт CЭксперт С++
9966 / 5889 / 996
Регистрация: 25.07.2009
Сообщений: 11,148
25.12.2009, 16:17 #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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <string.h>
 
#define ROW_LEN 80 
 
size_t wordsCount(const char *str){
        const char *p;
        size_t count, inword;
        
        if ( !str || !(*str) )
                return 0;
        
        inword = count = 0;
        for ( p = str; *p; p++ ){
                if ( *p != ' ' ){
                        if ( !inword ){
                                inword = 1;
                                count++;
                        }
                }
                else {
                        inword = 0;
                }
        }
        return count;
}
 
int main(void){
        char buf[ROW_LEN + 2]; /* "\n\0" */
        char spc[ROW_LEN], espc[ROW_LEN], *pWrd, *pEspc;
        size_t buf_len, nwords, spaces_needed, spaces_between_words, extra_spaces;
        
        while ( 1 ){
                printf("Enter string (single enter - exit): ");
                fgets(buf, ROW_LEN + 2, stdin);
                if ( *buf == '\n' )
                        break;
                buf_len = strlen(buf);
                if ( buf[buf_len - 1] == '\n' )
                        buf[--buf_len] = '\0';
                
                if ( buf_len == ROW_LEN ){ /* просто вывести строку */
                        printf("%s\n", buf);
                        continue;
                }
                
                nwords = wordsCount(buf);
                if ( !nwords ){
                        printf("Empty string or some other error!\n");
                        continue;
                }
                if ( nwords == 1 ){
                        printf("Only one word in string!\n");
                        continue;
                }
                spaces_needed = ROW_LEN - buf_len + nwords - 1;
                spaces_between_words = spaces_needed / (nwords - 1);
                memset((void*)spc, ' ', spaces_between_words);
                spc[spaces_between_words] = '\0';
                extra_spaces = spaces_needed % (nwords - 1);
                if ( extra_spaces )
                        memset((void*)espc, ' ', extra_spaces);
                espc[extra_spaces] = '\0';
                pEspc = espc;
                for ( pWrd = strtok(buf, " "); pWrd != NULL; pWrd = strtok(NULL, " ") ){
                        if ( --nwords ){
                                printf("%s%s", pWrd, spc);
                                if ( *pEspc ){
                                        if ( nwords > 1 )
                                                printf("%c", *pEspc++);
                                        else 
                                                printf("%s", pEspc);
                                }
                        }
                        else
                                printf("%s\n", pWrd);
                }
        }
        return 0;
}
0
Tatyana_88
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 2
25.12.2009, 16:53 #3
Спасибо огромное!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2009, 16:53
Привет! Вот еще темы с ответами:

Нужно отформатировать текст находящийся в файле: каждое предложение должно иметь порядковый номер и начинаться с красной строки - C++
Нужно отформатировать текст находящийся в файле: каждое предложение должно иметь порядковый номер и начинаться с красной строки!!! ...

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. - C++
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...

Отформатировать текст в С++. "Красная строка" после точки - C++
Всем привет. Есть задание &quot;Ввести с клавиатуры несколько строк, признаком конца ввода считать строку, состоящую из одной точки. Во...

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


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

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

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