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

Как на C++ ввести с консоли строку с пробелами в тип string? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 105, средняя оценка - 4.93
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
15.11.2012, 07:02     Как на C++ ввести с консоли строку с пробелами в тип string? #1
Нужно создать программу определяющую является ли строка палиндромом(т.е. одинаково пишется как слева направо так и справа налево). Программа нормально работает, пока не встречается с пробелом. Я понял, что cin для стринговой строки вводит только до первого пробела. Может быть есть там какой нибудь эквивалет gets для string?

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 <string>
using namespace std;
 
int main()
{
string s;
    cin>>s;
int i,l=s.length();
    bool x=0;
    for(i=0;i<l;i++){
    if(s[i]==' ')
        s.erase(i,1);
    }
    for(i=0;i<l/2+1;i++)
{if(s[i]!=s[l-i-1])
    {x=1;
    }
}if(x==1)cout<<"ne palindrom ";
    else cout<<"palindrom ";
    
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
15.11.2012, 07:20     Как на C++ ввести с консоли строку с пробелами в тип string? #2
ой не увидел, что string
getline();
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
15.11.2012, 07:26     Как на C++ ввести с консоли строку с пробелами в тип string? #3
Цитата Сообщение от Гриха Посмотреть сообщение
Может быть есть там какой нибудь эквивалет gets для string?
http://cplusplus.com/reference/string/getline/
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
15.11.2012, 07:27     Как на C++ ввести с консоли строку с пробелами в тип string? #4
C++
1
2
string s;
    getline (cin, s);
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
15.11.2012, 07:37  [ТС]     Как на C++ ввести с консоли строку с пробелами в тип string? #5
СПАСИБО!!! ПОМОГЛО!!! ПОЛУЧИЛОСЬ!!!))

Добавлено через 3 минуты
Цитата Сообщение от Pavell Посмотреть сообщение
ой не увидел, что string
getline();
махтал!)) Получилось!))
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
15.11.2012, 07:44     Как на C++ ввести с консоли строку с пробелами в тип string? #6
Цитата Сообщение от Гриха Посмотреть сообщение
bool x=0;
Цитата Сообщение от Гриха Посмотреть сообщение
x=1;
для bool используют другие значения
true (истина)аналогично 1
false (ложь)аналогично 0
Цитата Сообщение от Гриха Посмотреть сообщение
if(x==1)
это тавтология (повторение)
у тебя при x=1 будет если "истина"=="истина" результат "истина"
при x=0 будет если "ложь"=="истина" результат "ложь"
т.е результат всегда равен x
достаточно написать
C++
1
if(x)
вот здесь ты выкидываешь пробелы
Цитата Сообщение от Гриха Посмотреть сообщение
s.erase(i,1);
а далее анализируешь строку не скорректировав размер строки
Цитата Сообщение от Гриха Посмотреть сообщение
for(i=0;i<l/2+1;i++)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 06:22     Как на C++ ввести с консоли строку с пробелами в тип string?
Еще ссылки по теме:

Как считывать строку с пробелами? C++
C++ Как ввести из консоли строку известной длины?
Как прочитать строку с клавиатуры с пробелами C++

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

Или воспользуйтесь поиском по форуму:
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
19.11.2012, 06:22  [ТС]     Как на C++ ввести с консоли строку с пробелами в тип string? #7
Цитата Сообщение от ValeryS Посмотреть сообщение

вот здесь ты выкидываешь пробелы

а далее анализируешь строку не скорректировав размер строки
спасибо за указание на ошибки, я уже сделал все))
Yandex
Объявления
19.11.2012, 06:22     Как на C++ ввести с консоли строку с пробелами в тип string?
Ответ Создать тему
Опции темы

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