» »

[C#]polje znakov

[C#]polje znakov

krastača ::

naredila sem program za izpis 25 znakov in prebrat bi moglo le - znake samoglasnikov
char[] p = new char[5];
            for (int i = 0; i < p.GetLength(0); i++)
            {
                Console.Write("Vpiši {0}. znak: ", i);
                p[i] = (char)Console.Read();
                Console.ReadLine();
            }
            for (int i = 0; i < p.GetLength(0); i++)
            {
                if (p[i] == 'a' && p[i] == 'e' && p[i] == 'i' && p[i] == 'o' && p[i] == 'u') Console.WriteLine("p[{0}] = {1}", i, p[i]);
                else if (p[i] == 'A' && p[i] == 'E' && p[i] == 'I' && p[i] == 'O' && p[i] == 'U') Console.WriteLine("p[{0}] = {1}", i, p[i]);
            }
            Console.ReadKey(true);


trenutno je na 5 znakih ker še ni dopolnjen - vpišem lahko vendar mi za tem ne izpiše a sem naredila napako da sem delala tako veli if in else if?

amacar ::

Ne dela, ker si dala in namesto ali, torej && namesto || :)

char[] p = new char[5];
            for (int i = 0; i < p.GetLength(0); i++)
            {
                Console.Write("Vpiši {0}. znak: ", i);
                p[i] = (char)Console.Read();
                Console.ReadLine();
            }
            for (int i = 0; i < p.GetLength(0); i++)
            {
                if (p[i] == 'a' || p[i] == 'e' || p[i] == 'i' || p[i] == 'o' || p[i] == 'u') Console.WriteLine("p[{0}] = {1}", i, p[i]);
                else if (p[i] == 'A' || p[i] == 'E' || p[i] == 'I' || p[i] == 'O' || p[i] == 'U') Console.WriteLine("p[{0}] = {1}", i, p[i]);
            }
            Console.ReadKey(true);

Zgodovina sprememb…

  • spremenil: amacar ()

krastača ::

Ole, ole, ole, super celo dela če to spremenim - hvala lep - zakon si :))

Spura ::

for (int i = 0; i < p.Length; i++)

oziroma
for (int i = 0; i < p.Count; i++)

Ubistvu je drugo se boljse.

Zgodovina sprememb…

  • spremenil: Spura ()

krastača ::

Kaj pa je funkcija - p.Count? a šteje polja in p.Length je dovžina polja?

Spura ::

Count in Length niso funkcije ampak so properties i.e. lastnosti. V Count in Length imata isto vrednost, to je dolzina arraya.

Ericssony ::

Da bo po pravilih - Count() je metoda oz. extension method :)

norcuron ::

Da skrajšaš tista dolga čreva pogojev narediš en string, namečeš noter samoglasnike in preverjaš kaj ti .IndexOf(string) vrača - -1 ni samoglasnika, karkoli druzga je najden samoglasnik.
To je na brzino :)
Great are mysteries of the mind ... or not?

LeQuack ::

Z uporabo regular expressions se da stvar poenostaviti, kot je bilo omenjeno zgoraj:

            char[] p = new char[5];
            for (int i = 0; i < p.Length; i++)
            {
                Console.Write("Vpiši {0}. znak: ", i+1);
                p[i] = (char)Console.Read();
                Console.ReadLine();
            }

            // Iteracija skozi vse znake, preveri ce je kateri od njih samoglasnik
            for (int i = 0; i < p.Length; i++)
                // Regex preveri, ce je znak enak enemu od znakov aeiou, 
                // ne razlikuje med velikimi ali malimi crkami
                if (Regex.IsMatch(p[i].ToString(),"[aeiou]", RegexOptions.IgnoreCase)) 
                    Console.WriteLine("p[{0}] = {1}", i, p[i]);

            Console.ReadKey(true);
Quack !

Spura ::

Mozno da je Count funkcija. Ne znajdem se ravno na teh zanic MSDN pageih.
LeQuack, ni treba cloveka tkoj zmest z regularnimi izrazi.
Po mojem mnenju bi bil tle najprimernejsi switch stavek.

for (int i = 0; i < p.Length; i++)
{
    switch(p[i]) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
             Console.WriteLine("p[{0}] = {1}", i, p[i]);
             break;
    }
}

ce me spomin ne vara foreach dela tudi na arrayih. Potem lahko naredis:
foreach (char c in p)
{
    switch(c) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
             Console.WriteLine(" = {0}", c);
             break;
    }
}

Zgodovina sprememb…

  • spremenil: Spura ()

krastača ::

thanks Spura ta switc-case način je res zanimiv

Ziga Dolhar ::

https://dolhar.si/


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Visual C# problem

Oddelek: Programiranje
303146 (2318) mladec
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372509 (1726) 11tomi12
»

c# object[,] to object[][], excel itd.

Oddelek: Programiranje
7679 (499) mihies
»

[C#] Reševanje domačih nalog

Oddelek: Programiranje
173283 (2787) krastača

[C#]Length

Oddelek: Programiranje
6770 (666) Ziga Dolhar

Več podobnih tem