Írjunk programot, amely egy adott szövegről megállapítja, hogy Palindrom, ha visszafelé olvasva ugyanazt a szöveget adja vissza. A szövegben megengedett változó számú szóköz, kis- és nagybetű is lehet, ezeket kiszűrve történjen meg a vizsgálat. A vizsgálat eredményét egy külön szövegablakban jelenítse meg.
A feladat megoldása:
static int Palindrom(string sz, out string v)
{
int i, j, k=0;
string t = "";
v = "";
// kiszűrjük a szóközöket
for (i = 0; i <= sz.Length - 1; i++)
{
if (sz[i] != ' ')
{
t = t + sz[i]; k++;
}
}
t = t.ToLower(); // átalakítjuk kisbetűvé
for (i = 0, j = t.Length-1; i<j; i++, j--)
{
if(t[i] != t[j]) return 0;
}
for (i = sz.Length - 1, j = 0; i >= 0; i--, j++)
v = v + sz[i];
return 1;
}
private void button1_Click(object sender, EventArgs e)
{
string s = "", fs;
if (textBox1.Text != "")
{
s = textBox1.Text;
if ( Palindrom(s,out fs )== 1)
{
textBox2.Text = fs;
MessageBox.Show
("A szöveg fordítva is olvasható!",
"Palindrom");
}
else
MessageBox.Show(
"A szöveg fordítva nem olvasható!",
"Üzenet");
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = "";
}
A program futási eredményei: