Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удалить из слова гласные, встречающиеся дважды

45K
05 ноября 2011 года
Lidiya585
7 / / 08.05.2009
Задание: удалить из слова те гласные, что встречаются дважды.
Код, который я написала
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString word;
char b;
int p;
word = Edit1->Text;
for (int i=0; i<=word.Length(); i++)
if ((b=='à')||(b=='å')||(b=='¸')||(b=='è')||(b=='î')||(b=='ó')||
(b=='û')||(b=='ý')||(b=='þ')||(b=='ÿ'))
p++;
if (p==2)
word=word.Delete(b);
}

(гласные некорректно скопировались)
word.Delete(b), как я поняла, здесь использовать нельзя. А что тогда нужно использовать?
278
05 ноября 2011 года
Alexander92
1.1K / / 04.08.2008
 
Код:
word = word.Delete(i, 1);
45K
05 ноября 2011 года
Lidiya585
7 / / 08.05.2009
Частично переделала. Как сделать, чтобы удалялись именно две повторяющиеся гласные?
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString word;
char b;
int p=0, i=0;
word = Edit1->Text;
i++;
while (i<=word.Length())
{
if ((b=='а')||(b=='е')||(b=='ё')||(b=='и')||(b=='о')||(b=='у')||
(b=='ы')||(b=='э')||(b=='ю')||(b=='я'))
p++;
if (p==2)
word = word.Delete(b,1);
}
Label2 -> Caption=word;
}
45K
06 ноября 2011 года
Lidiya585
7 / / 08.05.2009
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString word;
char b;
int i=0;
int gl[10];// Массив гласных
word = Edit1->Text;
for(int i; i < 8; i++) gl = 0;// Обнуляем массив
for(int i; i<word.Length(); i++)
{
  switch(word)
  {
    case 'a': gl++;// Подсчитываем гласные
    case 'е': gl++;
    case 'ё': gl++;
    case 'и': gl++;
    case 'о': gl++;
    case 'у': gl++;
    case 'ы': gl++;
    case 'э': gl++;
    case 'ю': gl++;
    case 'я': gl++;
  }
}
for (int i = gl; i > 0; i--)
{
if (gl=2)
word = word.Delete(b,1);
}
Label2 -> Caption=word;
}

Как сделать поиск по массиву одинаковых гласных?
535
08 ноября 2011 года
Нездешний
537 / / 17.01.2008
Что-то вроде (билдера нет, так что не проверял):
Код:
AnsiString as = Edit1->Text;
    AnsiString asVowels = "уеыаоэяиюё";
    for (int i = 0; i < as.Length(); ++i)
    {
        if (asVowels.Pos( as.LowerCase() ) == 0)    continue; //если не гласная

        int pos;
        while ((pos = as.Pos(as, i+1)) != 0)
        {
            as.Delete(pos, 1);
        }
    }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог