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

Удаление пробелов в введенной строке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
10.10.2010, 16:47     Удаление пробелов в введенной строке #1
Вот я думаю надо так,но не получается

//Удаление пробелов в строке
#include<iostream>
#include<cstring>
#define N 80
using namespace std;

int main()
{
char st[N],st1[N];
int i = 0;
cin>>st;
cout<<"You enter - >"<<st;
for(i = 0;i < N;i++)
if(st[i]!= ' ')
st1[i]=st[i];

cout<<"\n"<<st1;
getchar();
getchar();
return(0);
}

Мы берем,вводим строку,далее находим все элементы,отличные от пробелов и копируем их во второй массив,который и выводим.
В чем ошибка?
Заранее благодарен,недавно начал только изучение языка,буду рад помощи.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 16:47     Удаление пробелов в введенной строке
Посмотрите здесь:

C++ Удаление лишних пробелов в строке.
C++ Вывести номера позиций начала введенной подстроки в введенной строке
Удаление пробелов в строке без использования модуля <string.h> C++
C++ Удаление начальных и конечных пробелов в строке
удаление пробелов в строке C++
C++ Создание программы со своей библиотекой ( удаление элементов с N по M в строке и удаление лишних пробелов(если 2 и более оставить один))
C++ Программа для подсчета пробелов во введенной пользователем строке
C++ Найти число пробелов в строке и заменить их на номер по порядку в исходной строке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
10.10.2010, 17:02     Удаление пробелов в введенной строке #2
Ошибка в том, cin>> считает строку до первого пробела, поэтому заменяем на getline. И ещё в цикле нужно использовать для каждой строки свой счётчик, т.к. длина строк будет разная из за смещений при удалении символа.
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<cstring>
#define N 80
using namespace std;
 
int main()
{
char st[N],st1[N];
int i = 0, j=0;
cin.getline(st,N,'\n');
 
cout<<"You enter - >"<<st<<endl;
 
for(i = 0; st[i] != '\0' ; i++)
{
    if(st[i]!= ' ')
    {
        st1[j++]=st[i];
    }
}
st1[j] = '\0';
cout<<"Result->"<<st1<<endl;
system("pause");
return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
10.10.2010, 17:08     Удаление пробелов в введенной строке #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
     std::string Str;
     std::getline(std::cin, Str);
     Str.erase(std::remove(Str.begin(), Str.end(), ' '), Str.end());
     std::cout<<Str<<'\n';
     return 0;
}
Yandex
Объявления
10.10.2010, 17:08     Удаление пробелов в введенной строке
Ответ Создать тему
Опции темы

Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru