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

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

Войти
Регистрация
Восстановить пароль
 
Beleaf
9 / 9 / 3
Регистрация: 14.04.2010
Сообщений: 99
#1

Удалить ненужные пробелы - C++

07.11.2010, 16:53. Просмотров 719. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;
 
int main()
{
    int i, j, len;
    char *text = new char[255];
    cout << "Input the text: ";
    cin.getline (text, 255);
    len = strlen (text);
    for (i=0; i<len; i++)
        if (text+i == " " && text+i+1 == " ")
            for (j=i; j<2; j++)
                *(text+j) = *(text+j+1);
    cout << "Text is: " << text;
    cin.get();
    cin.get();
    return 0;
}
Из исходного текста нужно удалить ненужные пробелы. Но, к сожалению, не работает, подскажите, пожалуйста, в чем проблема.
И почему вот эту строку нужно записывать с указателями, а другие нет (компилятор ругается)
C++
1
*(text+j) = *(text+j+1);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 16:53     Удалить ненужные пробелы
Посмотрите здесь:

Как удалить из строки ненужные символы? - C++
Как удалить из строки ненужные символы? Заранее спасибо.

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

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

Удалить из текста повторные пробелы - C++
Задача: удалить из текста повторные пробелы! подскажите как можно лучше это реализовать методами stl (обойтись без цикла, если это...

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

как удалить из строки пробелы - C++
либо массив char либо string как вам угодно помогите пожайлуста

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
07.11.2010, 18:17     Удалить ненужные пробелы #2
Удаление символов из текста обсуждалось на форуме, в поиск
RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
07.11.2010, 18:20     Удалить ненужные пробелы #3
Вывести на экран содержимое файла удалив лишние пробелы между словами
Beleaf
9 / 9 / 3
Регистрация: 14.04.2010
Сообщений: 99
07.11.2010, 19:04  [ТС]     Удалить ненужные пробелы #4
там немного другой алгоритм, хотелось бы в своем ошибки найти, мне же не на сдачу, а для себя
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2010, 20:52     Удалить ненужные пробелы
Еще ссылки по теме:

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

Поменять местами слова и удалить лишние пробелы - C++
Ребят, помогите пожалуйста,у меня вот так задание С помощью текстового редактора создать файл, содержащий текст, длина которого не...

Удалить из введенной с клавиатуры строки начальные пробелы - C++
Собственно в написании такой програмулинки:которая удаляет из введенной с клавиатуры строки начальные пробелы. Полученная строка без...

Удалить в файле лишние пробелы. (блок схема) - C++
Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. ...


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

Или воспользуйтесь поиском по форуму:
RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
07.11.2010, 20:52     Удалить ненужные пробелы #5
C++
1
2
for (j=i; j<2; j++)
    *(text+j) = *(text+j+1)
А если i>2? Цикл ни разу так и не выполнится

Добавлено через 57 минут
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
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
        int i, j, len;
        char *text = new char[255];
        cout << "Input the text: ";
        cin.getline (text, 255);
        len = strlen (text);
        //cout << len;
        for (i=0; i<len; i++)
                if ((*(text+i) == ' ') && (*(text+i+1) == ' '))
                {
                   //cout << "i = " << i << endl;
                        for (j=i; j<len; j++){
                                *(text+j) = *(text+j+1);
                                }
                                len--;
                                i--;
                }
        cout << "Text is: " << text;
        getch();
        return 0;
}
Ну вот, че то такое получается. Но я б так не писал, наверное.

Добавлено через 2 минуты
Да, еще delete [] text; в конце добавь.
Yandex
Объявления
07.11.2010, 20:52     Удалить ненужные пробелы
Ответ Создать тему
Опции темы

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