Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

Как ввести строку с пробелами - C++
char s1; char s2; int a; cin.getline(s1,50); cin&gt;&gt;a; cin.getline(s2,50); Не вводит...

Как ввести из консоли строку известной длины? - C++
Как ввести из консоли строку известной длины? Потоком.

Ввести строку с пробелами - C++
Как ввести строук с пробелами? cin.getline работает через одно место. Если знаете, как с ним сделать, то напишите, пожалуйста, чтобы...

Тип string в консоли - C++
Вот такие вопросы: 1. как правильно объявить string 2. записать в string слова и цифры с точками 3. передать и выполнить команду в...

Записать строку с пробелами в string, с помощью потока. - C++
Здравствуйте. Можно ли с помощью потока ввода записать строку с пробелами в тип string. Если да, то как.

Строки (ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС) - C++
ввести строку разделенную пробелами, и в словах которые оканчиваются на АВС заменить СС... помогите просто определить 3 последнии буквы,и...

6
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
15.11.2012, 07:20 #2
ой не увидел, что string
getline();
0
kazak
3050 / 2371 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
15.11.2012, 07:26 #3
Цитата Сообщение от Гриха Посмотреть сообщение
Может быть есть там какой нибудь эквивалет gets для string?
http://cplusplus.com/reference/string/getline/
1
Pavell
14 / 14 / 0
Регистрация: 13.11.2012
Сообщений: 28
15.11.2012, 07:27 #4
C++
1
2
string s;
    getline (cin, s);
1
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
15.11.2012, 07:37  [ТС] #5
СПАСИБО!!! ПОМОГЛО!!! ПОЛУЧИЛОСЬ!!!))

Добавлено через 3 минуты
Цитата Сообщение от Pavell Посмотреть сообщение
ой не увидел, что string
getline();
махтал!)) Получилось!))
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,240
15.11.2012, 07:44 #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++)
0
Гриха
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 24
19.11.2012, 06:22  [ТС] #7
Цитата Сообщение от ValeryS Посмотреть сообщение

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

а далее анализируешь строку не скорректировав размер строки
спасибо за указание на ошибки, я уже сделал все))
0
19.11.2012, 06:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 06:22
Привет! Вот еще темы с ответами:

Ввести строку char с консоли - C++
Добрый день! Помогите, пожалуйста. В моей программе используются переменные char* Я их присваивала в самом начале. Теперь решила...

Getline() не дает ввести строку в консоли - C++
При использовании std::getline() для считывая строки с консоли, getline не дает возможности ввести текст, просто оставляет строку в которую...

Ввод-вывод: Не могу ввести строку в std::string! - C++
Ничего не понимаю! Должно работать: void Engine::CreateNewNote() { std::cout &lt;&lt; &quot;Title: &quot;; std::string title; ...

Как считывать строку с пробелами? - C++
Стоит такая задача: Во введенной строке символов (последний - $) подсчитать общее количество цифр и букв S. Программа была написана и...


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

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

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