Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Insight
Člen
Avatar
Insight:6.2.2019 17:51

Snažím se vymyslet algoritmus, který spočítá počet slov v řetězci. Slova jsou oddělena jednou nebo více mezerami. Ovšm k ničemu jsem nedošel. Pomůže mi prosím někdo? Diky moc

Zkusil jsem: Přemyšlel jsem nad tim, ale nic mě nenapadlo.

Chci docílit: Nalézt funkční algoritmus.
Děkuji

Editováno 6.2.2019 17:52
 
Odpovědět
6.2.2019 17:51
Avatar
Odpovídá na Insight
Michael Škrášek:6.2.2019 18:19

Jednoduše, rozdělíš text po mezerách a kontroluješ jestli nebyly 2 mezery vedle sebe.

př.

string text = "slovo a slova další tři slova  dvě mezery";
List<string> slova = text.Split(' ').Where(w => w.Length > 0).ToList();

Console.WriteLine(text);
Console.WriteLine("počet slov: {0}", slova.Count);
Editováno 6.2.2019 18:19
Nahoru Odpovědět
6.2.2019 18:19
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Odpovídá na Insight
Michael Škrášek:6.2.2019 18:25

Pokud sis chtěl algoritmus naprogramovat uplně sám, mohl by vypadat nějak takhle:

char last = text[0];
int count = 1;
for (int i = 1; i < text.Length; i++)
{
    char chr = text[i];
    if (chr == ' ' && last != ' ')
        count++;
    last = chr;
}

Console.WriteLine("počet slov: {0}", count);
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
6.2.2019 18:25
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Odpovídá na Michael Škrášek
Neaktivní uživatel:6.2.2019 18:34

S tou kontrolou… https://docs.microsoft.com/…string.split?…
Edit: A asi by ještě bylo dobré použít trim (nebo ho udělat sám) :-)

Editováno 6.2.2019 18:37
Nahoru Odpovědět
6.2.2019 18:34
Neaktivní uživatelský účet
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.2.2019 20:03

V php by slo tez pouzit
$pocet = preg_match_all("~\w+~sx", $str);

 
Nahoru Odpovědět
6.2.2019 20:03
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.

Zobrazeno 5 zpráv z 5.