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

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

Войти
Регистрация
Восстановить пароль
 
Orest_raiter
3 / 3 / 0
Регистрация: 11.02.2012
Сообщений: 41
#1

Функция доводит длину строки до заданной, вставляя пробелы между словами - C++

08.10.2012, 18:47. Просмотров 749. Ответов 5
Метки нет (Все метки)

Функция доводит длину строки до заданной, вставляя пробелы между словами.
слово может складатса с любых символов
идея так
считать сначала n, где n наша строка которая даст знать скоко пробелов потом добавлять
потом считуем L ето наш рядок слов
потом lenghstd() мы узнаем длину нашего рядка
потом проверим скоко у нас слов и скоко нужно пробелов, потом между слов кидаем пропуски
но как ето релизировать

Добавлено через 35 минут
ну плиз помогите

Добавлено через 28 минут
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
// zadacha 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
using namespace std;
 
int lengs (int n,char l[100],int k,int a,int i)
{
cin.getline(l,20);
if(n>=strlen(l) && n!=strlen(l)) k=n-strlen(l);
cout<<l;
for(i=0;i<k;i++)
{
    cout<<" "<<endl;
}
}
 
int main()
{int n,char l[100],int k,int a,int i;
cin>>n;
lengs();
return 0;
system("pause");
}
Добавлено через 16 секунд
чтото типа етого, но тут немогу норм замутить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 18:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция доводит длину строки до заданной, вставляя пробелы между словами (C++):

Функция доводит длину строки до заданной, вставляя пробелы между словами - C++
Помогите с прогой на С Функция доводит длину строки до заданной, вставляя пробелы между словами

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

Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину каждого слова - C++
Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину (число символов) каждого слова. Длина...

Функция удаляет из строки пробелы и вставляет межу словами по 2 символа - C++
Добрый день, помогите пожалуйста с решением данной задачи: С клавиатуры вводится строка, которая состоит из слов, разделенных одним...

Функция, сравнивающая две строки, игнорируя количество пробелов между словами - C++
Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами (использовать функции работы со строками). ...

Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. - C++
Мое задание: убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. Вот программа...

5
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.10.2012, 19:25 #2
 Комментарий модератора 
Orest_raiter, следующий дубль - и получите карточку. Если вам не отвечают, ждите, а не нарушайте правила форума.

Сейчас с другими делами закончу, посмотрю, что там у вас.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.10.2012, 13:54 #3
Пока ваш код мало на что похож. Вам нужно разобраться сначала с языком как таковым, а потом приступать к написанию программ на нём. Это вам поможет: Литература C++
1
Orest_raiter
3 / 3 / 0
Регистрация: 11.02.2012
Сообщений: 41
11.10.2012, 19:14  [ТС] #4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Пока ваш код мало на что похож. Вам нужно разобраться сначала с языком как таковым, а потом приступать к написанию программ на нём. Это вам поможет: Литература C++
cпс
но мне завтра здавать, помогите плиз
я не проч, просто комп в ремонте, а компилировать через телефон на сайте надоело немного
0
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
12.10.2012, 10:18 #5
совет, делайте в стринговых переменных, т.к. там есть масса полезных функций.
проверяете длину вашей строки если меньше 20, то сплитом разрываете по признаку символа " " вашу строку. потом в цикле простым сложением строк можете добавить нужное количество пробелов между вашими словами (совет если изначально у вашей строки между словами есть 2 и более пробелов, делайте исключения иначе у вас будут пустые строки в полученном массиве, компилятор ясно дело это съест ибо он не вкурсе что вы записываете с вою строку, но при добавлении пробелов будет выпадать ошибка)
0
Snaiffer
2 / 2 / 0
Регистрация: 13.03.2011
Сообщений: 18
12.10.2012, 13:06 #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
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
93
94
95
96
97
98
99
100
101
102
#include <iostream>
#include <string.h>
 
using namespace std;
 
int count_words(const string &str)
{
     int count = 0;
 
     bool word = false;
     for(int i=0; i < str.size(); i++)
     {
          if(str[i] == ' ')
          {
                if( word )
                     count++;
 
                word = false;
          }
          else
                word = true;
     }
     //process end of string
     if (word)
          count++;
 
     return count;
}
 
int stretch(string &output, const string &input, const int target_size)
{
     int istr_size = input.size();
     if (istr_size < target_size)
     {
        const int quant_words = count_words(input);
        if ( quant_words > 1)
        {
            int quant_AddSpaces = target_size - istr_size;
            int SpacBetweenTwoW = quant_AddSpaces/(quant_words-1);
            int remainder = quant_AddSpaces - SpacBetweenTwoW*(quant_words-1);
    
            bool word = false;
            for(int i=0; i < istr_size; i++)
            {
                  output += input[i];
                  if(input[i] == ' ')
                  {
                        if( word )
                        {
                             int add = 0;
                             if (remainder > 0)
                             {
                                  add = 1;
                                  remainder--;
                             }
                             output.insert(output.size(), SpacBetweenTwoW+add, ' ');
                        }
        
                        word = false;
                  }
                  else
                        word = true;
            }
        }
        else
             return 2;
     }
     else
          return 1;
 
     return 0;
}
 
int main()
{
     string str = "hello world! How are you?";
     const int target_len = 40;
 
     string output;
     switch (stretch(output, str, target_len))
     {
          case 0:
                cout << str << endl;
                cout << output << endl;
                break;
 
          case 1:
                cerr << "The target length of string is less the initual length\n"; 
                break;
 
          case 2:
                cerr << "Quantity of words is less two words\n";
                break;
 
          default:
                cerr << "Unknown error\n";
                break;
     }
 
 
     return 0;
}
1
12.10.2012, 13:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 13:06
Привет! Вот еще темы с ответами:

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

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

Исключить лишние пробелы между словами (комментарии) - C++
Помогите пожалуйста разобраться в коде, писала не я, мало что тут понимаю, но мне нужны некоторые элементы этой задачи, чтобы решить свою:)...

Строка: Удалить лишние пробелы между словами - C++
Задание: нужно удалить лишние пробелы между словами (если один пробел, то его нужно оставить). # include &lt;conio.h&gt; # include...


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

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

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