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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 39
#1

Вычеркнуть из слова все гласные буквы - C++

09.12.2011, 22:32. Просмотров 1473. Ответов 16
Метки нет (Все метки)

помогите решить задачу со строками
"Вычеркнуть из слова все гласные буквы."

(желательно масивом и без функции.
плохо то что нет как на ТП delet или cut)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2011, 22:32     Вычеркнуть из слова все гласные буквы
Посмотрите здесь:

C++ Слова, начинающиеся и оканчивающиеся на гласные буквы
Найти все гласные буквы в словах C++
Удалить слова содержащие гласные буквы... C++
C++ Вычеркнуть из слова буквы ж, ч, ш, щ
Удалить все гласные буквы из строки C++
Вычеркнуть из слова все буквы "я",стоящие на честных местах C++
Массив строки. Удалить с масива слова которые заканчиваються на гласные буквы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.12.2011, 22:40     Вычеркнуть из слова все гласные буквы #2
Цитата Сообщение от Nasty zzz Посмотреть сообщение
плохо то что нет как на ТП delet или cut)
http://cplusplus.com/reference/clibr...tring/memmove/
http://cplusplus.com/reference/string/string/erase/

Ну еще вариант, простой для понимания, но, говорят, есть опасность использования
C
1
strcpy (&s[1],&s[2]); // Udalyaem vtory simvol
fasked
Эксперт C++
4932 / 2512 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
09.12.2011, 22:42     Вычеркнуть из слова все гласные буквы #3
Не проще ли второй массив использовать?
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
10.12.2011, 02:25     Вычеркнуть из слова все гласные буквы #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
 
#define isvowel(ch) ( strchr("AaEeIiOoUuYy", (ch)) )
 
int main(void){
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        char * pIn, * pOut;
        
        for ( pIn = pOut = buf; *pIn; ++pIn )
            if ( ! isvowel(*pIn) )
                *pOut++ = *pIn;
        *pOut = '\0';
        
        printf("Result: %s", buf);
    }
    
    return 0;
}
Nasty zzz
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 39
10.12.2011, 23:33  [ТС]     Вычеркнуть из слова все гласные буквы #5
а возможно без функции
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
10.12.2011, 23:47     Вычеркнуть из слова все гласные буквы #6
Цитата Сообщение от Nasty zzz Посмотреть сообщение
а возможно без функции
Ага, но много писать

easybudda, а Вы, как обычно, только новичек 100% не поймет Ваш код, раз сам не сумел сделать
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 10:23     Вычеркнуть из слова все гласные буквы #7
Опять же замечу, что можно прописать алгоритм сложностью m+n, где m - количество гласных букв, n - длина строки
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2011, 11:16     Вычеркнуть из слова все гласные буквы #8
Thinker, можете рассказать, хотелось бы узнать (гласных ведь не 1 штука, а целая строка, и по-любому на каждом шаге итерации мы будем проходить n раз по строке с гласными, что и делает strchr)...
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
11.12.2011, 12:14     Вычеркнуть из слова все гласные буквы #9
сделаю за n
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:26     Вычеркнуть из слова все гласные буквы #10
Цитата Сообщение от go Посмотреть сообщение
Thinker, можете рассказать, хотелось бы узнать (гласных ведь не 1 штука, а целая строка, и по-любому на каждом шаге итерации мы будем проходить n раз по строке с гласными, что и делает strchr)...
Технология такая же, как и здесь
http://www.cyberforum.ru/showthread.php?p=2231215

Добавлено через 46 секунд
Цитата Сообщение от alkagolik Посмотреть сообщение
сделаю за n

Не по теме:

Не верю!!! Мой алгоритм имеет минимальную сложность:cofee2:

go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2011, 12:33     Вычеркнуть из слова все гласные буквы #11
Thinker,
Цитата Сообщение от go Посмотреть сообщение
гласных ведь не 1 штука, а целая строка, и по-любому на каждом шаге итерации мы будем проходить n раз по строке с гласными, что и делает strchr)...
Все равно не верю
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:35     Вычеркнуть из слова все гласные буквы #12
Цитата Сообщение от go Посмотреть сообщение
Все равно не верю
А вы разобрали ту задачу?
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
11.12.2011, 12:41     Вычеркнуть из слова все гласные буквы #13

Не по теме:

Не верю!!! Мой алгоритм имеет минимальную сложность:cofee2:

правильно делаете

Добавлено через 1 минуту
n + m можно в вариантах
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:43     Вычеркнуть из слова все гласные буквы #14
Цитата Сообщение от alkagolik Посмотреть сообщение
n + m можно в вариантах
Это да, но сложность минимальная, меньше уже нельзя
go
Эксперт C++
3585 / 1365 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2011, 12:45     Вычеркнуть из слова все гласные буквы #15
Thinker, а ну да, просто забыл, что одинаковых символов в строке не будет Спасибо.
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
11.12.2011, 12:48     Вычеркнуть из слова все гласные буквы #16
Цитата Сообщение от go Посмотреть сообщение
а ну да, просто забыл, что одинаковых символов в строке не буде
даже если и будет. сложность n + m
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2011, 12:50     Вычеркнуть из слова все гласные буквы
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
4219 / 2193 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:50     Вычеркнуть из слова все гласные буквы #17
Цитата Сообщение от alkagolik Посмотреть сообщение
даже если и будет. сложность n + m
Это правда. Алгоритм это игнорирует, просто m будет содержать лишнее число шагов, не более того
Yandex
Объявления
11.12.2011, 12:50     Вычеркнуть из слова все гласные буквы
Ответ Создать тему
Опции темы

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