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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
sanek15
1 / 1 / 0
Регистрация: 10.10.2011
Сообщений: 89
#1

Удалить из слова буквы, стоящие на четных местах - C++

04.12.2011, 23:05. Просмотров 1193. Ответов 10
Метки нет (Все метки)

как удалить из слова буквы,стоящие на четных местах??заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 23:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить из слова буквы, стоящие на четных местах (C++):

Вычеркните из слова все буквы "я", стоящие на четных местах - C++
Вычеркните из слова все буквы "я", стоящие на четных местах.

Выяснить, все ли буквы слова Х, стоящие на нечетных местах, различны - C++
Задание 2 Выяснить, все ли буквы слова Х, стоящие на нечетных местах, различны.

Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. - C++
Из одномерного массива,состоящего из n целочисленных элементов, удалить отрицательные элементы, стоящие на четных местах. Сжать...

Сортировка массива: отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах - C++
здравствуйте! задание: В одномерном массиве, состоящем из п целых элементов. Упорядочить по возрастанию отдельно элементы, стоящие на...

Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива, расположенных после минимального...

Ввести с клавиатуры предложение. Удалить из него все буквы о, стоящие на нечетных местах. - C++
Ввести с клавиатуры предложение. Удалить из него все буквы о, стоящие на нечетных местах.

10
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
04.12.2011, 23:57 #2
C++
1
2
3
4
for (int i=0; i<strlen(mas); i++)
{
   if(mas[i] != ' ' && i%2 == 0 )  mas[i] = ' ';
}
0
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
05.12.2011, 00:01 #3
К предыдущему посту, я думаю нужно сделать так:
C++
1
mas[i] = '';
(пробел лишний)
0
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
05.12.2011, 00:01 #4
Kidasov, заменить пробелом не значит удалить
0
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.12.2011, 00:11 #5
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
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <algorithm>
 
 
using namespace std;
 
class RR
{
    public:
        bool operator()(char element)
        {
            ++cnt;
            return (cnt & 1) ? false : true;
        }
 
    private:
        static int cnt;
};
 
int RR::cnt = -1;
 
 
 
int main()
{
 
    string s = "123456789";
 
    s.erase(remove_if(s.begin(), s.end(), RR()), s.end());
 
    cout << s;
 
    return 0;
}
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
05.12.2011, 00:20 #6
Тогда можно просто сместить элементы

C++
1
2
3
4
5
6
7
8
9
10
N = strlen(mas);
for(i=1; i<N; i++)
 {
  if(mass[i] != ' ' && i%2 == 0)
   {
      for(j=i; j<N-1; j++)
        mass[j] = mass[j+1];
      N--; i--;
   }
 }
0
PointsEqual
ниначмуроФ
837 / 521 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.12.2011, 00:24 #7
Цитата Сообщение от Kidasov Посмотреть сообщение
можно просто сместить
а надо
Цитата Сообщение от sanek15 Посмотреть сообщение
удалить из слова
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
05.12.2011, 00:27 #8
Тогда только STL
0
sanek15
1 / 1 / 0
Регистрация: 10.10.2011
Сообщений: 89
05.12.2011, 10:44  [ТС] #9
а можно как нибудь попроще написать программу..
0
ForEveR
В астрале
Эксперт С++
7985 / 4744 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.12.2011, 10:46 #10
sanek15, аха.

C++
1
2
int cnt = 0;
str.erase(std::remove_if(str.begin(), str.end(), [&cnt] (const char val) { return !(cnt++ % 2); }), str.end());
0
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 965
Записей в блоге: 3
05.12.2011, 17:58 #11
Можно создать список


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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
struct Node {
  char s;
  Node *next;
};
 
class List {
public:
  Node *head;
  List() { head = new Node; head -> next = NULL; }
  void addFirst(char s);
  void insertAfter(Node *nextNode, char s);
  void addLast(char s);
  Node *findNode(char s);
  void deleteSymbol(char s);
  void show();
};
 
void List :: addFirst(char s)
{
  insertAfter(head, s);
}
 
void List :: insertAfter(Node *nextNode, char s)
{
  Node *buf = new Node;
  buf -> s = s;
  buf -> next = nextNode -> next;
  nextNode -> next = buf;
}
 
void List :: addLast(char s)
{
  Node *buf = head;
  while (buf -> next)
  {
    buf = buf -> next;
  }
  insertAfter(buf, s);
}
 
Node *List :: findNode(char s)
{
  Node *buf = head;
  while (buf)
  {
    if (buf -> s == s) { cout<<"Element is found\n"; break; } 
    buf = buf -> next;
  }
cout<<"Введите символ, который хотете удалить\n";
  cin>>sign;  return buf;
}
 
void List :: deleteSymbol(char key)
{
  Node *buf = head;
  if (!buf) { cout<<"List is empty\n"; return; }
  while (buf -> next)
  {
    if (buf -> next -> s == key)
    {
      cout<<"Element "<<key<<" is erased\n";
      buf -> next = buf -> next -> next;
    }
    else buf = buf -> next;
  }      
}
 
void List :: show()
{
  Node *buf = head;
  while (buf)
  {
    cout<<buf->s;
    buf = buf -> next;
  }
  cout<<"\n";
}
 
int main()
{ 
  char s[100], sign;
  List myList;
  cout<<"Введите массив\n";
  gets(s);
  cout<<"Исходный массив\n";
  for (int i=0; i<strlen(s); i++)
  {
    myList.addLast(s[i]);
  }
  myList.show();
  for (int i=0; i<strlen(s); i++)
  {
    if (!i%2)
    {
      myList.deleteSymbol(sign);
    }
  }
  myList.show();
  return 0;
}
0
05.12.2011, 17:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 17:58
Привет! Вот еще темы с ответами:

Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах - C++
В заданном одномерном массиве поменять местами соседние элементы ,стоящие на четных местах ,с элементами ,стоящими на нечетных...

Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб - C++
как будет код не знаете? Дано два массива байтов, один заполнен числами. Заполнить второй массив следующим образом: все элементы...

В тексте слова, стоящие на четных местах, переписать задом наперед. В тексте несколько строк. - C++
Задание: освоить обработку строк и работу с файлами средствами языка Си. Исходный текст должен содержаться в одном файле, результат — во...

В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах - C++
1)В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных...


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

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

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