Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Just_2D
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 22
1

Удалить со строки слова

17.03.2013, 11:26. Просмотров 461. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток. Мне нужно удалить со строки все слова которые начинаются на гласную с помощью:
1) Строки как массива символов.
2) Строки как класса string.
Помогите пожалуйста.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 11:26
Ответы с готовыми решениями:

Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы
Здравствуйте. Помогите, пожалуйста сделать программу... Задание: Составить...

Удалить из строки все находящиеся в ней слова «студент» и определить все позиции вхождения этого слова
Удалить из строки все находящиеся в ней слова «студент» и определить все...

Удалить из строки слова с нечетными номерами и перевернуть слова с четными номерами
Распечатать введенную строку, удалив из нее слова с нечетными номерами и...

Удалить из строки одинаковые слова.
Собственно, вот и само задание. Для заданного предложения необходимо найти и...

Удалить из строки повторяющиеся слова
Всем привет! Никак не могу разобраться с заданием из книги Бьерн...

3
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
17.03.2013, 14:13 2
вариант один.

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
#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;
 
int main()
{
    char txt[] = "Asddqw ops Dase ddd yds aqwq ubi";
    char glasn[] = "aeiouy";
    
    char * pch = strtok(txt, " ");
    
    while (pch != NULL)
    {
        bool isglasn = false;
        for (int i = 0; i < 6; ++i)
            if (tolower(pch[0]) == glasn[i])
                isglasn = true;
 
        if (!isglasn)
            cout << pch << " ";
        pch = strtok(NULL, " !,.");
    }
    
    cout << endl;
    system("pause");
}



Второй можно сделать точно так же, просто заменив
C++
1
char * pch = strtok(txt, " ");
на
C++
1
2
string txt2 = "Asddqw ops Dase ddd yds aqwq ubi";
char * pch = strtok(const_cast<char*>(txt2.c_str()), " ");
1
Just_2D
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 22
17.03.2013, 14:36  [ТС] 3
А вы бы не могли прокоментировать код?
0
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
17.03.2013, 17:12 4
Пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
* * char txt[] = "Asddqw ops Dase ddd yds aqwq ubi"; // массив символов
* * char glasn[] = "aeiouy"; // массив букв
char * pch = strtok(txt, " "); // разделение строки на подстроку
while (pch != NULL)
* * {
* * * * bool isglasn = false; // булевая переменная для определения гласной
* * * * for (int i = 0; i < 6; ++i) // цикл по распознанию гласной
* * * * * * if (tolower(pch[0]) == glasn[i]) // если первый символ подстроки - гласная
* * * * * * * * isglasn = true; // присвоить истину
if (!isglasn) // если ложно
* * * * * * cout << pch << " "; // вывести подстроку
* * * * pch = strtok(NULL, " "); // обнулить
* * }
cout << endl;
* * system("pause");
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2013, 17:12

Удалить последние слова из строки
Всем добрый день! Перечитал про множество функций для работы со строками....

Удалить из строки все однобуквенные слова
не могу никак понять что вбить в if что бы программа работала #include...

Строки. Удалить слова наибольшей длины
В строке удалить слова наибольшей длины. Оставшиеся слова записать через...


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

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

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