//---------------------------------------------------------------------------
#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), как я поняла, здесь использовать нельзя. А что тогда нужно использовать?
Код:
word = word.Delete(i, 1);
Код:
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;
}
{
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;
}
Код:
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;
}
{
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;
}
Как сделать поиск по массиву одинаковых гласных?
Код:
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);
}
}
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);
}
}