Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 10
1

Отредактировать текст по ширине

09.07.2014, 11:00. Показов 521. Ответов 1
Метки нет (Все метки)

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
81
82
83
84
85
86
87
88
89
90
91
92
#include "stdafx.h" 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h>
#include <locale.h>
#include <windows.h>
 
#define KEY_CTRL_Z 0x1A 
#define KEY_ENTER 0xD 
#define KEY_POINT '.' 
#define KEY_SPACE ' '
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    puts("Введите текст, для окончания ввода нажмите Ctrl+z и Enter: ");
    char ** sout = 0; //массив строк (для результата) 
    int size = 0; //размер sout 
    int count = 0; //реальное количество строк 
    int step = 10; //приращение size если количество строк становится равно размеру 
    int it = 0; //текущей индекс в строке 
    int mlen = 60; //максимальная длина строки при разбиении 
    bool skip = false; //метка: пропускать запись пробела в начале строки или нет
    char c;
    while (true) //бесконечный цикл 
    {
         c = getchar(); //читаем очередной символ 
 
        if (c == KEY_CTRL_Z) //если символ указвыает на завершение ввода 
        {
            if (it != 0)
            {
                sout[count][it] = 0; //указываем конец текущей строки 
                count++;//пересчитываем количество 
            }
            break; //вышли из цикла 
        }
 
        if (it == mlen) //если индекс равен макс длине строки то 
        {
            sout[count][it] = 0; //указываем конец строки 
            count++; //переходим на следующую строку 
            it = 0; //переходим на начало строки 
 
            skip = true; //отметились 
        }
        if (size == count) //если массив строк заполнен то 
 
        {
            int i = size; //индекс последней строки + 1 
            size += step; //увеличиваем размер 
            sout = (char**)realloc(sout, size * sizeof(char**)); //перевыделяем память 
            for (; i < size; i++) //проходимся по всем новым элементам 
            {
                sout[i] = new char[mlen + 1]; //выделяем память 
            }
        }
        
            if (c == KEY_ENTER) //если это перевод строки 
            {  //подменяем символ на пробе
            sout[count][it] = 0; //указываем конец строки 
            count++; //переходим на следующую строку 
            it = 0; //переходим на начало строки 
 
 
            skip = true; //отметились 
            }
            if (skip) //если можно пропустить пробел 
            {
                skip = false; //если еще будут пробелы то их уже не пропустим 
                if (!it && c == KEY_SPACE) //если мы хотим записать в начало строки пробел то 
                {
                    continue; //не делаем этого, переходим на начало цикла 
                }
            }
            sout[count][it] = c; //записали символ 
            it++; //перешли к следующему 
        
    }
    printf("\n\nlines = %d\n\n", count);//вывели количество строк в новом разбиении 
    
    char rus[30][70];
    for (int i = 0; i < count; i++) //для каждой строки 
    {
        OemToCharA(sout[i], rus[i]);
        printf("%s\n", rus[i]); //вывели ее 
    
    }
    
    system("pause"); //ждем пользователя 
    return 0;
}
мне нужно отредактировать текст по ширине,но получается вот такая хрень
Отредактировать текст по ширине
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.07.2014, 11:00
Ответы с готовыми решениями:

Выровнять текст по ширине
Вот такое задание: Выравнивание правого края. Многие современные текстовые редакторы предоставляют...

Дано некоторый текст. Отредактировать его таким образом
Дано некоторый текст. Отредактировать его таким образом, чтобы все символы «.» были заменены на...

Отредактировать текст,удалив из него все слова с нечетными номерами
Пожалуйста нужна помощь с заданием по С++ И вот задание (1.Отредактировать текст,удалив из него...

Отредактировать текст заменив каждую 5 букву со строчной на прописную и наоборот
помогите с написанием программы в С++ . срочно нужно очень, сам дуб дубом. в интернете не нашел...

1
zzzZZZ...
526 / 357 / 94
Регистрация: 11.09.2013
Сообщений: 2,040
09.07.2014, 11:21 2
http://valera.asf.ru/cpp/scpp/... lators.htm
и
cout<<"вам в помощь";
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2014, 11:21

Отредактировать текст, удаляя лишние символы пробелов между словами
Отредактировать текст,удаляя лишние символы пробелов между словами;по нажатию произвольной клавиши...

Отредактировать текст, удалив лишние пробелы и оставив только по одному пробелу
Помогите пожалуйста написать программу .В исходном предложении поставить произвольное число...

Отредактировать текст, удаляя из него лишние пробелы. Заключить весь текст в кавычки
Всем здравствуйте. Выручайте делаю лабораторные и вот такая задача: Отредактировать текст, удаляя...

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


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

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

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