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

Как сделать, чтобы в начало не добавлялись лишние переносы строк?

26.04.2016, 20:43. Просмотров 332. Ответов 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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{   
int dls;
char s[300];
int far[100]={1};
printf("Vvedite text\n");
gets(s);
dls = strlen(s);
int i=0,j=0,k=0,n=0,f=0;
char ms[50][400],c[400];
 while(n<=dls)
 
    {
  // как сделать чтоб в начало не добавлялись лишние переносы строк      
while((s[n]!=',' && s[n]!= '.' && s[n]!= '1' && s[n]!= '2' && s[n]!= '3' && s[n]!= '4' && s[n]!= '5' && s[n]!= '6' 
   && s[n]!= '7' && s[n]!= '8' && s[n]!= '9' && s[n]!= '0' && s[n]!= '-' && s[n]!= '=' && s[n]!= '!' && s[n]!= '@' 
   && s[n]!= '#' && s[n]!= '$' && s[n]!= '%' && s[n]!= '^' && s[n]!= '&' && s[n]!= '*' && s[n]!= '(' && s[n]!= ')'
   && s[n]!= '_' && s[n]!= '+' && s[n]!= '"' && s[n]!= '№' && s[n]!= ';' && s[n]!= ':' && s[n]!= '?' && s[n]!= '/'
   && s[n]!= '|' && s[n]!= '>' && s[n]!= '<' && s[n]!= '`' && s[n]!= '~' && s[n]!= ' '))
       {
       ms[i][j]=s[n]; 
       j++; 
       n++;
       }
    ms[i][j]='\n';//если сделать так:   ms[i][j]='\n4';   будет ведней
    j=0;
    i++;
    n++;
  
    }               
do
 {
 f=0;
 for(j=i-1;j>k;j--)
   { 
   if (strcmp(ms[j],ms[j-1])<0)
     { 
     strcpy(c,ms[j]);
     strcpy(ms[j],ms[j-1]);
     strcpy(ms[j-1],c);
     f=1;
     } 
   }
   k++;
 }
while(f);
 // как сделать чтоб в начало не добавлялись лишние переносы строк                     
for (j=0;j<i;j++)
puts(ms[j]); 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 7 минут
вжу ывоп3орп5 работает как нужно
ввожу аылпрп33333ло55555лдои выдает много переносов строк
помогите с проблемкой пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2016, 20:43
Ответы с готовыми решениями:

Как сделать так, чтобы добавляемые элементы в ListBox добавлялись в начало
Можно добавлять элементы в начало коллекции, но как сделать, чтобы каждый добавляемый в списке...

Как сделать, чтобы пункты от 1 до 9 добавлялись в виде 01,02,03...09 ?
В цикле добавляю пункт от 1 до 99. Внимание вопрос:как сделать, чтобы пункты от 1 до 9 добавлялись...

Как сделать, чтобы одинаковые поля не добавлялись в dataGridView
Данные вводятся через textbox. К примеру в dataGridView уже есть такое значение, и при добавлении...

Как сделать чтобы “ссылки” добавлялись внутрь текста?
Сделал кнопку для добавления &quot;ссылок&quot; в &quot;richTextBox&quot;. &quot;Ссылки&quot; добавляются не в текст, а сверху...

1
197 / 197 / 78
Регистрация: 10.07.2012
Сообщений: 405
08.05.2016, 15:42 2
в программе есть несколько проблем:
1. while(n<=dls): при n = dls программа будет получать доступ за пределами строки. К примеру, для строки "ab": dls = 2, s[0] = 'a', s[1] = 'b', s[2] = '\0'.
2. Символ '\n' не является признаком окончания строки. Для того чтобы её по-настоящему завершить, надо в массив прописать '\0'.
3. Следующие друг за другом цифры порождают множество пустых строк. Чтобы этого не происходило, нужно перед добавлением строки в массив добавить проверку на её пустоту. То есть, если j = 0, до добавлять строку нет смысла.

Вот вариант с моими исправлениями:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
    int dls;
    char s[300];
    int far[100] = { 1 };
    printf("Vvedite text\n");
    gets(s);
    dls = strlen(s);
    int i = 0, j = 0, k = 0, n = 0, f = 0;
    char ms[50][400], c[400];
    while (n < dls)
    {
        while ((s[n] != ',' && s[n] != '.' && s[n] != '1' && s[n] != '2' && s[n] != '3' && s[n] != '4' && s[n] != '5' && s[n] != '6'
            && s[n] != '7' && s[n] != '8' && s[n] != '9' && s[n] != '0' && s[n] != '-' && s[n] != '=' && s[n] != '!' && s[n] != '@'
            && s[n] != '#' && s[n] != '$' && s[n] != '%' && s[n] != '^' && s[n] != '&' && s[n] != '*' && s[n] != '(' && s[n] != ')'
            && s[n] != '_' && s[n] != '+' && s[n] != '"' && s[n] != '№' && s[n] != ';' && s[n] != ':' && s[n] != '?' && s[n] != '/'
            && s[n] != '|' && s[n] != '>' && s[n] != '<' && s[n] != '`' && s[n] != '~' && s[n] != ' '))
        {
            ms[i][j] = s[n];
            j++;
            n++;
        }
        if (j != 0)
        {
            ms[i][j] = '\0';
            j = 0;
            i++;
        }
        n++;
    }
    do
    {
        f = 0;
        for (j = i - 1; j>k; j--)
        {
            if (strcmp(ms[j], ms[j - 1])<0)
            {
                strcpy(c, ms[j]);
                strcpy(ms[j], ms[j - 1]);
                strcpy(ms[j - 1], c);
                f = 1;
            }
        }
        k++;
    } while (f);
    for (j = 0; j<i; j++)
        puts(ms[j]);
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2016, 15:42

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

Как сделать так, чтобы абзацы сами добавлялись?
Вот создаю я блог, например, ну там куча статей, вставляю текст в форму добавления статьи. А оно...

Как сделать, чтобы в StringGrid столбцы добавлялись слева, а не справа?
Как сделать, чтобы в StringGrid столбцы добавлялись слева, а не справа, а два последних столбца не...

Подскажите как сделать покупку билетов чтобы добавлялись в разные залы
Вобщем есть Класс зал. В нем матрица (типо зал кинотеатра). Есть список фильмов и время сеанса....

Как сделать, чтобы картинки автоматически добавлялись, если увеличивается текст
Как можно сделать, чтобы картинки автоматически добавлялись, если увеличивается текст. Щас поясню...


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

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

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