C# madárnyelv (pl. tulipán->tuvulivipáván)? Hogy kéne csinálnom?
Eddig jutottam:
Console.Write("Szó: ");
string be = Console.ReadLine();
char[] szo = be.ToCharArray();
for (int i = 0; i < szo.Length; ++i)
{
if (szo[i] == 'a')
{
Console.Write(szo[i]);
szo[i + 1] = 'v';
szo[i + 2] = szo[i];
i += 2;
}
}
Definiálj egy <char, string> dictionary-t ('u'=>"uvu", 'i'=>"ivi", 'á'=>"ává" stb.) és egy StringBuilder-t (vagy bárhogy is hívják ezeket C#-ban).
Iterálj végig a bemenet karakterein és appendeld a StringBuilder-hez karakternek megfelelő stringet a dictből vagy magát a karaktert, ha nincs a dictben.
Add vissza az új stringet a StringBuilder-ből.
Gyakorlatilag #1 javaslata (a teendő helyesbítésével):
Legyen egy mintastringed, amely az összes magánhangzó-karaktert tartalmazza. Kell még egy üres string a madárnyelvű szónak. Amikor a bekért szón végigmégy, ezt csinálod a ciklusban:
1. A soron következő betűt hozzáadod a madárnyelvű szóhoz.
2. Ellenőrzöd, hogy a mintastringedben megvan-e ez a karakter. Ha igen, akkor a madárnyelvűhöz hozzáadsz egy "v" betűt, és még egyszer az aktuális betűt.
A ciklus lefutása után kiíratod a madárnyelvűt.
Az ellenőrzéshez az IndexOf() metódust használhatod:
A felsorolt lehetőségek közül a kilencediket ajánlom figyelmedbe, amelyik pont a legegyszerűbb.
Bonyolíthatod például azzal, hogy nagybetű esetén a "v" utáni ismétlés már kisbetű legyen, de legegyszerűbb, ha nem foglalkozol a különbséggel, hanem a bekérés után eleve kisbetűsíted a szót, akkor a keresőmintába is elég csak a kisbetűket írnod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!