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

Написать функцию удаления в строке все буквы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция возвращающая массив http://www.cyberforum.ru/cpp-beginners/thread226117.html
Здравствуйте. Для возврата массива возвращаю указатель на него, но вне предела области в которой он был создан память выделенная под массив используется программой, при этом состояние массива...
C++ СТРУКТУРЫ в СИ++ Описать структуру с именем SPORTSMAN, с полями: фамилия, имя, вид спорта, результат. Ввести несколько структур. Затем напечатать их по возрастанию, используя в качестве первичного ключа – вид спорта,... http://www.cyberforum.ru/cpp-beginners/thread226106.html
Передача двойного указателя C++
Написал прогу которая работает с односвязным списком. При передаче в функцию двойного указателя, я его теряю. Смотрел в дебаггером - значение внутри функции совсем другое. Пробовал другой...
C++ Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик
Дана целочисленная прямоугольная матрица. Характеристикой строки матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с...
C++ Функции в С++ http://www.cyberforum.ru/cpp-beginners/thread226082.html
Привет всем! Помогите,пожалуйста,решить задание.Очень срочно нужно... Написать функцию с умалчиваемыми параметрами в соответствии с вариантом, продемонстрировать различные способы вызова функции:...
C++ Выкладываю реализацию алгоритма Дейкстры на С++ Дпанная программа выполняет поиск по заданной матрице весов. Далее указываем начальную точку в графе и программа расчитывает все кратчайшие растояния от начальной точки до остальных следующим... подробнее

Показать сообщение отдельно
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
09.01.2011, 18:43
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
#include <iostream>
#define N 256
 
bool is_digit(char ch)
{
  if(ch>='0' && ch<='9') return true;
  return false;
}
 
void filter(char* str, int n , char ch)
{
  char tmp[n];
  int k=0;
  for(int i=0;i<n;i++)
    {
      if(str[i]!=ch || i==n-1 || !is_digit(str[i+1])) 
    {
      tmp[k]=str[i];
      k++;
    }
    }
  tmp[k+1]='\0';
  for(int i=0;i<k;i++) str[i]=tmp[i];
}
 
int main()
{
  char* str = new char[N];
  std::cout << "Введите строку:\n";
  std::cin.getline(str,N-1);
  std::cout << "Введите удаляемые символ который:\n"; //пробел игнорируется, предпологается, что его можно использовать как разделитель.
  char ch;
  while(std::cin.get(ch) && ch!='\n') if(ch!=' ' && ch!='\t') filter(str,N,ch);
  std::cout << str << std::endl;
  delete[] str;
  return 0;
}
Добавлено через 5 минут
ну так там написано "Написать функцию удаления в строке все буквы ―b‖, непосредственно за которыми идет цифра" а если в строке 2 буквы b а если в строке больше 1 буквы, то программа перестаёт работать. это можно как-то поправить?
если в строке две буквы б, то программа и удаляла две буквы б. программа перестает работать, только если когда вас просят ввести букву(!!!) вы вводите целое слово. и то она не перестает работать а просто считывает букву, а все следуюемое за буквой считается как строка, которую следует фильтровать. программа делает свою задачу но небольше. просто следуйте инструкциям, или вам обязательно необходимы и всевозможные проверки на соответствие типов и введенных данных?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.