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

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

Войти
Регистрация
Восстановить пароль
 
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 116
#1

Строки. Удалите из неё буквы (Жалуется на if) - C++

04.01.2013, 17:47. Просмотров 247. Ответов 7
Метки нет (Все метки)

Вот задача
Дана строка . Удалите из неё среднюю букву, если длина строки нечётная или две средних в противном случае

Мне пишет что ошибка в if

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 #include<fstream>
using namespace std;
 
int main()
{
    ifstream in("input.txt"); 
    ofstream fout("output.txt");
    string s;
     in>> s;
     int len=s.length()
     if (len%2==0)
     {  fout<< s.erase(len/2,2); }
     else fout<< s.erase(len/2,1);
     return 0;
     }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2013, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки. Удалите из неё буквы (Жалуется на if) (C++):

Дана строка из 20 символов. вывести из неё латинские строчные буквы - C++
Дана строка из 20 символов. Вывести из нее на печать только строчные буквы латинского алфавита.

Размер строки по указателю на неё - C++
int Size(char* text) { return size; // надо вычислить } Size(&quot;hello&quot;); Я передаю в ф-ию строку , как вернуть её размер...

Удалите из неё среднюю букву, если длина строки нечётная или две средних в противном случае - Pascal ABC
Дана строка s. Удалите из неё среднюю букву, если длина строки нечётная или две средних в противном случае. Формат входных данных Во...

Строки. В строке удалите все буквы «с» - Pascal
2)В строке удалите все буквы «с». Если такого символа нет, то выведите на экран соответствующее сообщение. Выведите полученную строку на...

Строки. В строке удалите все буквы «с» - Pascal
В строке удалите все буквы «с». Если такого символа нет, то выведите на экран соответствующее сообщение. Выведите полученную строку на...

Массив: Удалите из неё строку и столбец, на пересечении которых расположен минимальный элемент. - Pascal ABC
Дана матрица.Удалите из неё строку и столбец,на пересечении которых расположен минимальный элемент.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 17:49 #2
В 12 строке точку с запятую забыли поставить.
1
nonedark2008
909 / 648 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
04.01.2013, 17:50 #3
Цитата Сообщение от TheAlpha Посмотреть сообщение
len=s.length()
Точки с запятой в конце нет.
1
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 116
04.01.2013, 18:08  [ТС] #4
Спасибо с if разобрался, но существуют такие значения, при которых программа работает не правильно, какие эти значения я не знаю,но проходит она 12 тестов из 20, можете помочь

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 #include<fstream>
using namespace std;
 
int main()
{
    ifstream in("input.txt"); 
    ofstream fout("output.txt");
    string s;
     in>> s;
     int len=s.length();
     if (len <3 || len >100)
     {return 1;}
     
     if (len%2==0)
     {  fout<< s.erase(len/2,2); }
     else fout<< s.erase(len/2,1);
     return 0;
     }
0
coloc
погромист
410 / 246 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 18:11 #5
Цитата Сообщение от TheAlpha Посмотреть сообщение
но проходит она 12 тестов из 20
Напишите, что за тесты
0
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 116
04.01.2013, 18:16  [ТС] #6
Контестер
http://school.sgu.ru/mod/contester/p...p?a=12&pid=218
Там регистрироваться нужно, но если потребуется, то могу дать свой логин и пароль, так как там все равно нету ничего важного
0
grizlik78
Эксперт С++
1913 / 1445 / 113
Регистрация: 29.05.2011
Сообщений: 3,001
04.01.2013, 18:26 #7
Попробуй для чётных удалять так:
s.erase(len/2 - 1,2)
1
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 116
04.01.2013, 18:34  [ТС] #8
Сработало, спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2013, 18:34
Привет! Вот еще темы с ответами:

Дана строка X. Модифицируйте строку следующим образом: удалите из строки все слова, начинающиеся с буквы "А". - Turbo Pascal
ребятки, очень прошу помогите!!))) вот такую штуку надо сделать в паскале, а я не очень в этом разбираюсь, помогите новичку в этом...

В строке удалите все буквы «с» - Pascal ABC
В строке удалите все буквы «с». Если такого символа нет, то выведите на экран соответствующее сообщение. Выведите полученную строку на экран

Дана строка.Удалите буквы стоящие на четных местах - Pascal ABC
напишите плииииииз,все прогу просто по школе задали а время в обрез

Строки. Удалите из символьной строки все символы, которые являются одной из четырех первых букв латинского алфавита - Pascal ABC
2. Удалите из символьной строки все символы, которые являются одной из четырех первых букв латинского алфавита. 3. Даны две строки...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.01.2013, 18:34
Ответ Создать тему
Опции темы

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