Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
ton4ik
2 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 28
#1

добавление пробелов в строке

25.11.2009, 18:49. Просмотров 1708. Ответов 7
Метки нет (Все метки)

здравствуйте!

Постановка задачи. Дан текст, состоящий из слов, которые раз-делены пробелами и знаками препинания: точкой, запятой, точкой с запятой, тире, двоеточием, кавычками, вопросительным знаком, восклицательным знаком, круглыми скобками. Реализовать операцию обработки текста. Добавить пробелы перед открывающей и после закрываю-щей круглыми скобками, если они там отсутствуют.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
void main()
{
char S[80];
char S1[2]=" (", S2[2]=") ";
int i;
cin.getline(S,80);
while(S[i]!=0)
 {
 if (S[i]=='(')
//здесь я думал может стркатом строчки сложить, но их надо в новую строку с большим количеством элеметнов и я вообщемто запутлася, как строоку увеличивать когда пробелы добавляются?
         }
cout<<S;
 getch();
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2009, 18:49
Ответы с готовыми решениями:

Найти число пробелов в строке и заменить их на номер по порядку в исходной строке
Задание: Во введенной пользователем строке найти число пробелов и заменить все...

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
В заданной строке определить количество слов (в строке может содержаться...

Добавление пробелов в строку
Здравствуйте. Помогите пожалуйста решить данное задание: Дана строка,содержащая...

Удаление пробелов в строке
вот такая задача надо что бы программа удаляла первый и последний пробел в...

Подсчитать количество пробелов в строке
Подсчитать количество пробелов в строке. Добавлено через 3 минуты Я знаю...

7
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
25.11.2009, 20:04 #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
#include <iostream.h>
#include <string>
 
 
int main()
{
    string s="",buf;
 
    cout << "Enter string: ";   getline(cin, buf);
    
    buf="*"+buf+"*";
 
    for (int i=1; i<buf.length()-1; i++)
    {
        switch (buf[i])
        {
            case '(':   if(buf[i-1]!=' ')   { s+=" (";  break; }
            case ')':   if(buf[i+1]!=' ') { s+=") ";  break; }
            default:        s+=buf[i];
        } // end    switch  
    }
 
    cout<<"str: "<<s<<endl;
    return 0;
}
1
ton4ik
2 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 28
25.11.2009, 20:58  [ТС] #3
спасибо, но почемуто эта програмка не выводит на экран измененную строку.
а я вот как то так хотел сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
void main()
{
char S[80];
int i,j,x;
cin.getline(S,80);
while(S[i]!=0)
 {
 if (S[i]=='(')
   for (j=i+1;j>i;j++)
   { S[i]=x;
    S[i]=S[i+1];
    S[i+1]=x;}
    S[i]=' ';       }
for (i=0;i<80;i++)
cout<<S[i];
 getch();
 }
то есть когда скобочка, то мы сдвигаем все эелемнты после скобочки на одну позицию вместе со скобкой а на ее место ставим пробел, ну и точно также другую сторону но я не дописал, но что даже эта часть не работает. какие тут естьошибочки?

Добавлено через 36 минут
ребята помогите!
0
easybudda
Модератор
Эксперт CЭксперт С++
10051 / 5971 / 1491
Регистрация: 25.07.2009
Сообщений: 11,306
26.11.2009, 00:50 #4
Цитата Сообщение от ton4ik Посмотреть сообщение
почемуто эта програмка не выводит на экран измененную строку.
Вот та же программа от TanT, отформатировал только так, чтоб самому понятнее было... Всё прекрасно работает, и строка выводится...
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
#include <iostream>
using std::cin; 
using std::cout;
using std::endl;
#include <string>
using std::string;
 
 
int main(){
    string s="", buf;
 
    cout << "Enter string: ";       
    getline(cin, buf);
        
    buf = "*" + buf + "*";
 
    for ( int i = 1; i < buf.length()-1; i++ ){
        switch (buf[i]){
            case '(':   if ( buf[i-1] != ' ' ){ 
                            s += " (";  
                            break;
                        } 
            case ')':   if ( buf[i+1]!=' ' ){     
                            s += ") ";  
                            break; 
                        }
            default:    s+=buf[i];
        } // end        switch  
    }
 
    cout << "str: " << s << endl;
    return 0;
}
добавление пробелов в строке
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
26.11.2009, 05:52 #5
Цитата Сообщение от easybudda Посмотреть сообщение
Вот та же программа от TanT, отформатировал только так, чтоб самому понятнее было...
вопрос: а что было не понятно по оформлению?
на будующее учесть

ton4ik, ошибок море во всех разбираться времени не хватит вот первое что бросилось в глаза
ты i вообще не инициализировал, а везде используешь
ну и этот цикл будет вечный если i >=0 for (j=i+1;j>i;j++)
0
easybudda
Модератор
Эксперт CЭксперт С++
10051 / 5971 / 1491
Регистрация: 25.07.2009
Сообщений: 11,306
26.11.2009, 11:02 #6
Цитата Сообщение от TanT Посмотреть сообщение
а что было не понятно по оформлению?
на будующее учесть
Ну я привык скобки/отступы по-своему расставлять - так нагляднее (кстати, тут оно всё равно немного сбилось) ну и это хозяйство
C++
1
2
3
4
5
6
#include <iostream>
using std::cin; 
using std::cout;
using std::endl;
#include <string>
using std::string;
сделал, как в книжке написано...
0
ton4ik
2 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 28
01.12.2009, 01:05  [ТС] #7
всем спасибо за овтеты, но т к я еще на первом курсе, а работать с функциями нас не учили еще, можно написать тоже самое не используя их? и вместо стринга использовать чар..
вприцнипе я только не понимаю как сделать вот перемещение на один символ: из "такого" сделать " такого" то есть с пробелом. если кто знает как помогите..
0
ton4ik
2 / 2 / 1
Регистрация: 14.10.2009
Сообщений: 28
02.12.2009, 01:43  [ТС] #8
ребята!
0
02.12.2009, 01:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2009, 01:43

Подсчитать количество пробелов в строке
Задание : Вводится строка. Подсчитать количество пробелов в строке. Не...

Посчитать количество пробелов в строке
Посчитать количество пробелов в строке

Подсчитать количество пробелов в строке
Подсчитать количество пробелов в строке Через массив #include &lt;iostream&gt; ...


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

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

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