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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
sanek15
1 / 1 / 0
Регистрация: 10.10.2011
Сообщений: 89
04.12.2011, 23:05     Удалить из слова буквы, стоящие на четных местах #1
как удалить из слова буквы,стоящие на четных местах??заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 23:05     Удалить из слова буквы, стоящие на четных местах
Посмотрите здесь:

Сортировка массива: отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах C++
C++ В тексте слова, стоящие на четных местах, переписать задом наперед. В тексте несколько строк.
В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах C++
Ввести с клавиатуры предложение. Удалить из него все буквы о, стоящие на нечетных местах. C++
Вычеркнуть из слова все буквы "я",стоящие на честных местах C++
Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах C++
Выяснить, все ли буквы слова Х, стоящие на нечетных местах, различны C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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] = ' ';
}
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
05.12.2011, 00:01     Удалить из слова буквы, стоящие на четных местах #3
К предыдущему посту, я думаю нужно сделать так:
C++
1
mas[i] = '';
(пробел лишний)
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5817 / 1215 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
05.12.2011, 00:01     Удалить из слова буквы, стоящие на четных местах #4
Kidasov, заменить пробелом не значит удалить
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 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;
}
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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--;
   }
 }
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.12.2011, 00:24     Удалить из слова буквы, стоящие на четных местах #7
Цитата Сообщение от Kidasov Посмотреть сообщение
можно просто сместить
а надо
Цитата Сообщение от sanek15 Посмотреть сообщение
удалить из слова
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 3
05.12.2011, 00:27     Удалить из слова буквы, стоящие на четных местах #8
Тогда только STL
sanek15
1 / 1 / 0
Регистрация: 10.10.2011
Сообщений: 89
05.12.2011, 10:44  [ТС]     Удалить из слова буквы, стоящие на четных местах #9
а можно как нибудь попроще написать программу..
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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());
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 17:58     Удалить из слова буквы, стоящие на четных местах
Еще ссылки по теме:

Вычеркните из слова все буквы "я", стоящие на четных местах C++
Массивы. Заменить все отрицательные элементы, стоящие на четных местах, максимальным его элементом, а на нечетных местах - минимальным C++
Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. C++
C++ Удалить из слова повторяющиеся 4 раза буквы, стоящие рядом
Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб C++

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

Или воспользуйтесь поиском по форуму:
Kidasov
77 / 77 / 12
Регистрация: 02.12.2011
Сообщений: 966
Записей в блоге: 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;
}
Yandex
Объявления
05.12.2011, 17:58     Удалить из слова буквы, стоящие на четных местах
Ответ Создать тему
Опции темы

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