Ahoj, snažím se udělat program, který spočítá počet slov v textu a
pokud jich je sudý počet, přepíše ve všech lichých slovech první
písmeno na velké. Pokud bude počet lichý, přepíše ve všech sudých
slovech poslední písmeno na velké. např: Kde se vzala, tu se vzala, byla
tam. -> Kde Se vzala, Tu se Vzala, byla Tam.
Zatím mám tohle
privatevoid button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
int pocetInt = 0;
string vety = textBox1.Text;
Queue<char> znaky = new Queue<char>();
char[] set = newchar[4] { '.', '!', '?', ' ' };
string[] pole = vety.Split(set, StringSplitOptions.RemoveEmptyEntries);
string output = "";
foreach (char p in vety)
{
if (p == '.' || p == '!' || p == '?')
znaky.Enqueue(p);
}
for (int i = 0; i < pole.Length; i++)
{
if (znaky.Count > 0)
{
pocetInt++;
}
else
{
output += "ŘETĚZEC NEOBSAHUJE VĚTU";
}
}
if (pocetInt % 2 == 0)
{
foreach (char p in vety)
{
if (p == '.' || p == '!' || p == '?')
znaky.Enqueue(p);
}
textBox2.Text += SpracujVetu(vety, false) + znaky.Dequeue();
}
}
staticstring SpracujVetu(string veta, bool opacne)
{
//Tu bude ulozeny nas spracovany retazec
StringBuilder upravenyText = new StringBuilder();
char predZnak = ' ';
//Prejdi kazdy znak vo vetefor (int i = 0; i < veta.Length; i++)
{
//Ak predch. znak bola medzeraif (char.IsWhiteSpace(predZnak))
{
//true
upravenyText.Append(
(!opacne ? char.ToUpper(veta[i]) : char.ToLower(veta[i]))
);
}
else
{
//false
upravenyText.Append(
(!opacne ? char.ToLower(veta[i]) : char.ToUpper(veta[i]))
);
}
predZnak = veta[i];
}
return upravenyText.ToString();
}
Snažil jsem se rozdělit na sudý, ale nevím jak spojit slova s prvním
velkým počátečním a slova normální.
Děkuji za každou radu.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.