3 / 3 / 0
Регистрация: 11.02.2012
Сообщений: 42
1

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

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

Author24 — интернет-сервис помощи студентам
Функция доводит длину строки до заданной, вставляя пробелы между словами.
слово может складатса с любых символов
идея так
считать сначала 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2012, 18:47
Ответы с готовыми решениями:

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

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

Выровнять строки по правому краю, вставляя между словами дополнительные пробелы
Дан текстовый файл Т, содержащий предложения на русском языке. Выровнять строки по правому краю, ...

Выровнять строки по правому краю, вставляя между словами дополнительные пробелы
Дан текстовый файл Т, содержащий предложения на русском языке. Выровнять строки по правому краю, ...

5
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.10.2012, 19:25 2
 Комментарий модератора 
Orest_raiter, следующий дубль - и получите карточку. Если вам не отвечают, ждите, а не нарушайте правила форума.

Сейчас с другими делами закончу, посмотрю, что там у вас.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
11.10.2012, 13:54 3
Пока ваш код мало на что похож. Вам нужно разобраться сначала с языком как таковым, а потом приступать к написанию программ на нём. Это вам поможет: Литература C++
1
3 / 3 / 0
Регистрация: 11.02.2012
Сообщений: 42
11.10.2012, 19:14  [ТС] 4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Пока ваш код мало на что похож. Вам нужно разобраться сначала с языком как таковым, а потом приступать к написанию программ на нём. Это вам поможет: Литература C++
cпс
но мне завтра здавать, помогите плиз
я не проч, просто комп в ремонте, а компилировать через телефон на сайте надоело немного
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
12.10.2012, 10:18 5
совет, делайте в стринговых переменных, т.к. там есть масса полезных функций.
проверяете длину вашей строки если меньше 20, то сплитом разрываете по признаку символа " " вашу строку. потом в цикле простым сложением строк можете добавить нужное количество пробелов между вашими словами (совет если изначально у вашей строки между словами есть 2 и более пробелов, делайте исключения иначе у вас будут пустые строки в полученном массиве, компилятор ясно дело это съест ибо он не вкурсе что вы записываете с вою строку, но при добавлении пробелов будет выпадать ошибка)
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2012, 13:06
Помогаю со студенческими работами здесь

Выровнять строки в файле по правой и левой границе, вставляя между словами пробелы
Доброго времени суток. Задача: Выравнять строки в файле по правой и левой границе, вставляя между...

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

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

В каждой строке удалить лишние пробелы между словами и разместить их по левому краю, сохраняя первоначальную длину строк
Можете помочь?)Заранее спасибо


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru