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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 105, средняя оценка - 4.93
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
#1

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

15.11.2012, 07:02. Просмотров 14752. Ответов 6
Метки нет (Все метки)

Нужно создать программу определяющую является ли строка палиндромом(т.е. одинаково пишется как слева направо так и справа налево). Программа нормально работает, пока не встречается с пробелом. Я понял, что 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 ";
    
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2012, 07:02     Как на C++ ввести с консоли строку с пробелами в тип string?
Посмотрите здесь:

C++ Ввести строку с пробелами
Записать строку с пробелами в string, с помощью потока. C++
Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) C++
C++ Тип string в консоли
Ввод-вывод: Не могу ввести строку в std::string! C++
Как считывать строку с пробелами? C++
C++ Как ввести из консоли строку известной длины?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
15.11.2012, 07:20     Как на C++ ввести с консоли строку с пробелами в тип string? #2
ой не увидел, что string
getline();
kazak
3031 / 2352 / 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
Модератор
6485 / 4951 / 455
Регистрация: 14.02.2011
Сообщений: 16,401
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++ Getline() не дает ввести строку в консоли
Ввести строку char с консоли 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?
Ответ Создать тему
Опции темы

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