0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8

удаление пробелов между словами и буквами

02.01.2011, 16:00. Показов 3122. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток, не могли бы вы мне помочь в создании программы которая удаляет удвоенные согласные в любом предложении, но чтоб удаляла а не заменяла на пробелк примеру чтоб было слово "удвоенное" вот так "удвоеая" а не "удвое ая",

вот пример программы которую я показал учителю он утверждает что эта программа не удаляет а просто не видит эти символы:
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
#include <iostream>
#include <conio.h>
using namespace std;
void main()
{
    int i=0,n;
    char s[50];
    cout<<"Vvedite tekst\n";
    gets(s);            // Ввод строки
    while (s[i]!='\0')
    {   
        n=i;
        i++;
    }
    n++;
 
    for(i=0;i<n;i++)
        {   
            if(s[i]==s[i+1])
                if(s[i]!='e' || s[i]!='u' || s[i]!='i' || s[i]!='o' ||                  s[i]!='a' || s[i]!='y')
                {
                    i=i+2;
                }
                cout<<s[i];
        }
        
      getchar();
}
ЗАРАНЕЕ СПАСИБО!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.01.2011, 16:00
Ответы с готовыми решениями:

Вывести количество пробелов между словами в строке
:help:Помогите с программой:пользователь вводит строчку,а программа выводит кол-во пробелов между словами в строке. #include...

Увеличить в два раза количество пробелов между словами
увеличить в два раза количество пробелов между словами

Строки определение максимального количества пробелов между словами
Слабо знаю строки в с++ . Помогите пожалуйста сделать эту задачу: Расстояние между двумя словами равной длины - это количество позиций, в...

18
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 16:23
xellboy8,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string str;
    const std::string byk("BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvXxZz");
    std::cout << "\n\nString -> ";
    getline(std::cin, str);
 
    for(std::string::size_type i = 0; i < str.length() - 1; ++i)
        if(byk.find(str[i]) != std::string::npos &&  str[i] == str[i + 1])
            str.erase(i, 2);
 
    std::cout << str << std::endl;
    return 0;
}
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.01.2011, 16:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <functional>
 
typedef std::string T_str;
 
int main()
{
    T_str str;
    std::cout<<"Enter string: ";
    std::getline(std::cin, str);
    for(size_t i=0; i<str.size()-1; ++i)
        if(str[i] == str[i+1])
           str.erase(i, 2);
    std::cout<<str<<'\n';
    return 0;
}
Добавлено через 1 минуту
Оу. Про согласные не увидел. Тогда солидарен с asics.
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 16:33  [ТС]
у меня показывает 2 ошибки
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.01.2011, 16:34
xellboy8, Ошибки в студию...
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 16:36  [ТС]
в программе которую прислал asics
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.01.2011, 16:37
xellboy8, Сами ошибки сюда скиньте оО
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 16:38  [ТС]
------ Построение начато: проект: dmitriy, Конфигурация: Debug Win32 ------
Компиляция...
laba.cpp
c:\users\user\documents\visual studio 2008\projects\dmitriy\dmitriy\laba.cpp(1 0) : error C3861: getline: идентификатор не найден
c:\users\user\documents\visual studio 2008\projects\dmitriy\dmitriy\laba.cpp(1 6) : error C2679: бинарный '<<': не найден оператор, принимающий правый операнд типа 'std::string' (или приемлемое преобразование отсутствует)
d:\program files\microsoft visual studio 9.0\vc\include\ostream(653): может быть 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::bas ic_ostream<_Elem,_Traits> &,const char *)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(700): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::bas ic_ostream<_Elem,_Traits> &,char)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(738): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,const char *)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(785): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,char)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(909): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,const signed char *)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(916): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,signed char)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(923): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,const unsigned char *)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(930): или 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_os tream<_Elem,_Traits> &,unsigned char)' [найдено при поиске с зависимостью от аргументов]
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(170): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(176): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(183): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(190): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(std::_Bool)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(210): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(short)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(243): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(unsigned short)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(263): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(__w64 int)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(288): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(__w64 unsigned int)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(308): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(long)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(328): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(__w64 unsigned long)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(349): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(__int64)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(369): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(unsigned __int64)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(390): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(float)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(410): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(double)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(430): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(long double)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(450): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(const void *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
d:\program files\microsoft visual studio 9.0\vc\include\ostream(470): или 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::oper ator <<(std::basic_streambuf<_Elem,_Traits> *)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
при попытке сопоставить список аргументов '(std::ostream, std::string)'
Журнал построения был сохранен в "file://c:\Users\user\Documents\Visual Studio 2008\Projects\dmitriy\dmitriy\Debug\Buil dLog.htm"
dmitriy - ошибок 2, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.01.2011, 16:51
xellboy8, #include <string> добавьте в начале кода.
1
02.01.2011, 16:55

Не по теме:

Мда, вроде копировал код на форум з #include <string>, хз где он делся :scratch:

1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 17:00  [ТС]
а могли бы вы расписать по шагово как работает эта программа а то учитель замонает вопросами...я ему уже раз 7 пойду сдавать это задание....последний зачет осталось получить
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 17:05
xellboy8, Да тут вроде и шагов не так много, просто проходимся в цыкле по сторке и ищем согласную букву, если нашли то проверяем букву идущую за ней и если эта буква равняется предедущей, то удаляем эти две буквы.
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 17:08  [ТС]
а еще одна просьба как будет выглядеть алгоритм к этой программе
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 17:10
xellboy8, Я же написал алгоритм.
1
0 / 0 / 0
Регистрация: 02.01.2011
Сообщений: 8
02.01.2011, 18:31  [ТС]
блок-схема, прошу прощения, как будет выглядеть

Добавлено через 1 час 19 минут
я когда в этой программе ввожу к примеру ffddog у меня выводит ddog то есть символ dd не удаляеться
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 23:13
Цитата Сообщение от xellboy8 Посмотреть сообщение
я когда в этой программе ввожу к примеру ffddog у меня выводит ddog то есть символ dd не удаляеться
Тогда так попробуй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
 
int main()
{
    std::string str;
    const std::string byk("BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvXxZz");
    std::cout << "\n\nString -> ";
    getline(std::cin, str);
 
    int k;
    for(std::string::size_type i = 0; i < str.length() - 1; ++i)
        if(byk.find(str[i]) != std::string::npos &&  str[i] == str[i + 1])
        {
            str.erase(i, 2);
            --i;
        }
 
    std::cout << str << std::endl;
    return 0;
}
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
03.01.2011, 00:19
Давно для себя писал:
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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
char teststroka []= "BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvXxZz";
 
bool f (char* simvol) {
 if (strchr(teststroka, *simvol))
  if (((*(simvol-1))==*simvol)||((*(simvol+1))==*simvol))
   return false;
  if (islower(*simvol))
   if (*(simvol-1)==(toupper)(*simvol)||*(simvol+1)==(toupper)(*simvol))
    return false;
  if (isupper(*simvol))
   if (*(simvol-1)==(tolower)(*simvol)||*(simvol+1)==(tolower)(*simvol))
    return false;
  return true;  
}
 
//+++++++++++++++++++++++++++++++++++++=
char* copystrok1 (char *t, char *s) {
 char* c= t;
 while (*s!= '\0') {
  if (f(s)) {
   *t++= *s++;
  }
  else {
   s++;
  }
 }
 *t= '\0';
 return c;
 getchar ();
};
 
//+++++++++++++++++++++++++++++++++++++=
int main() {
  char stroka_1 [55]= "asdf  gg jk tt  uu erb hh kj o kk kjkj  jjjj jj rerre";
  char stroka_2 [55];
  copystrok1 (stroka_2, stroka_1);
  printf ("%s\n", stroka_2);
  getchar ();
}
Тут разработана функция copystrok1, которая посимвольно копирует строку t в строку s при соблюдении некторого условия.
За соблюдение или несоблюдение условия отвечает функция f. Если она возвращает истину- происходит копирование, иначе нет. Можно использовать в других проектах, только функцию f меняй как я щас и всё.

Тестируй.
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
03.01.2011, 01:58
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
//////////////////////////////////////////////////////////////////////////////////////
//Программа, которая удаляет удвоенные согласные в любом предложении.
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////////////
void  remove_dual_consonants(T_str&  s)
{
    struct  T_is_eq_cons
    {
        T_str  consonants_;
        T_is_eq_cons() : consonants_("bcdfghklmnpqrstvwxz")
        {}
        //-----------------------------------------------------------------------------
        bool operator() (T_str::value_type  symb_A, T_str::value_type  symb_B)
        {
            return    tolower(symb_A) == tolower(symb_B)
                   && consonants_.find(tolower(symb_A)) != T_str::npos;
        }    
    };
 
    for(T_str::iterator  start_it = s.begin();;)
    {
        start_it = std::adjacent_find(start_it, s.end(), T_is_eq_cons());
        if(start_it == s.end()) break;
        s.erase(start_it, start_it + 2);         
    }
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку латиницей с двойными согласными:"
              << std::endl;
 
    T_str  s;
    getline(std::cin, s);
    remove_dual_consonants(s);
    std::cout << "Строка с удаленными двойными согласными:"
              << std::endl
              << s
              << std::endl;
}
1
03.01.2011, 02:00

Не по теме:

Кстати, чё за название у темы?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.01.2011, 02:00
Помогаю со студенческими работами здесь

Отредактировать текст, удаляя лишние символы пробелов между словами
Отредактировать текст,удаляя лишние символы пробелов между словами;по нажатию произвольной клавиши выделить первое предложение текста.

Функция, сравнивающая две строки, игнорируя количество пробелов между словами
Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами (использовать функции работы со строками). ...

Отсортировать слова по алфавиту в массиве char. Между словами по несколько пробелов
Задачка такая: есть строка - вводится юзером. Нужно в этой строке упорядочить слова по алфавиту. Проблема в том, что не знаю з чего начать....

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами.
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Помогите пожалуйста Разработать функцию, которая сравнивает две строки,...

Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами
Имеется такое задание: Разработать функцию, которая сравнивает две строки, игнорируя количество пробелов между словами. Можете объяснить...


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

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

Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru