C# kolik má každé slovo písmen? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# kolik má každé slovo písmen? – C / C++ – Fórum – Programujte.comC# kolik má každé slovo písmen? – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
OndraT0
Duch
5. 8. 2017   #1
-
0
-

Ahoj, potřebuju vědět, jak zajistit, když mám klasickou větu string veta = "Ahoj, jak se máš?";,
tak aby mi to vypočítalo, kolik má každé slovo písmen? Musím to dělat slovo po slově jako Console.WriteLine("ahoj".Length.ToString());
Consle.WriteLine("jak".Lenght.ToString());
atd. nebo to jde i jinak? 

Díky za odpověď

Nahlásit jako SPAM
IP: 90.180.200.–
Jerry
~ Anonymní uživatel
512 příspěvků
5. 8. 2017   #2
-
0
-

#1 OndraT
myslim že neni žádná funkce co ti spočítá slova v řetězci v C# + .NET knihovna. dělá se to cyklem třeba while a uvnitř v každým kroku najdeš separátor funkcí String.IndexOf. Pokud máš víc separátorů jako např. čárka nebo mezera a pod. vyplatí se provézt předzpracování a za každou čárku dát mezeru a v hlavním cyklu hledat jen mezery nebo naopak vyhodit z řetězce víc mezer za sebou. nejspíš bude dobrý použít funkci String.IndexOf (String, Int32) kde Int32 udává místo v řetězco od které pozice se hledá (zero-based-index) a Int32 v každým cyklu zvětšíš o +1 vzhledem k poslední nalezený pozici mezery.

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:780d:...–
BDS+3
Věrný člen
5. 8. 2017   #3
-
+1
-
Zajímavé

#1 OndraT
1. Jsi ve špatné diskuzi. Diskuze k C# je tady.

2. Tady je takový pro začátečníka jednoduchý způsob:

        static void Main(string[] args)
        {
            string text = "Ahoj, jak se máš?";
            string[] words = text.Split(new char[] { ' ', ';', ',', '.', ':', '\t', '?', '!', '+', '-', '*', '/', '\r', '\n', '\', '\v' });
            
            foreach(string word in words)
            {
                if (word.Length > 0) Console.WriteLine("{0} = {1}", word, word.Length);
            }

            Console.ReadKey();
        }

nebo: 

        static void Main(string[] args)
        {
            JinyZpusob("Ahoj, jak se máš?");
            Console.ReadKey();
        }
        
        //nahrazení nepísmenných znaků oddělovačem 
        static string Prepare(string text)
        {
            StringBuilder bu = new StringBuilder(text);
            for(int i=0; i<bu.Length; i++)
            {
                if (!Char.IsLetterOrDigit(bu[i])) bu[i] = ';';
            }
            return bu.ToString();
        }

        static void JinyZpusob(string s)
        {
            string text = Prepare(s);
            string[] words = text.Split(new char[] { ';' });
            foreach (string word in words)
            {
                if (word.Length > 0) Console.WriteLine("{0} = {1}", word, word.Length);
            }
        }
Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
OndraT0
Duch
6. 8. 2017   #4
-
0
-

#3 BDS
Pardon, jsem tu nový :)

super, dekuji moc:)

Nahlásit jako SPAM
IP: 90.180.200.–
OndraT0
Duch
6. 8. 2017   #5
-
0
-

#2 Jerry
Děkuji:)

Nahlásit jako SPAM
IP: 90.180.200.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 64 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý