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

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

Восстановить пароль Регистрация
 
Tatyana_88
Сообщений: n/a
25.12.2009, 14:46     Отформатировать текст по n символов в строке #1
Отформатировать текст по n символов в строке (встасить равномерно между словами пробелы, чтобы длина строк была равна n).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2009, 14:46     Отформатировать текст по n символов в строке
Посмотрите здесь:

Нужно отформатировать текст находящийся в файле: каждое предложение должно иметь порядковый номер и начинаться с красной строки C++
Отформатировать текст, находящийся в файле C++
C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
C++ Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текст
В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 C++
C++ Отформатировать текст: каждое предложение с новой строки, между словами - по одному пробелу
Текст, состоящий не более чем из 255 символов, разбить на строки длиной не более 50 символов в строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.12.2009, 16:17     Отформатировать текст по n символов в строке #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;
}
Tatyana_88
Сообщений: n/a
25.12.2009, 16:53     Отформатировать текст по n символов в строке #3
Спасибо огромное!!
Yandex
Объявления
25.12.2009, 16:53     Отформатировать текст по n символов в строке
Ответ Создать тему
Опции темы

Текущее время: 07:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru