Keresés

Új hozzászólás Aktív témák

  • Karma

    félisten

    válasz zuzu000 #6056 üzenetére

    "Char tömbben hogy keresem meg az első nem \0 elem indexét?
    Tehát ami valamilyen karaktert jelöl, nem üres."

    Legegyszerűbben egy for ciklussal.

    Ha általánosabban meg akarod oldani, akkor célszerű írni egy extension methodot a feladathoz. Álljon itt egy példa StackOverflowról:

    public static class EnumerableExtension
    {

    public static int FirstIndexMatch<TItem>(this IEnumerable<TItem> items, Func<TItem,bool> matchCondition)
    {
    var index = 0;
    foreach (var item in items)
    {
    if(matchCondition.Invoke(item))
    {
    return index;
    }
    index++;
    }
    return -1;
    }
    }

    Ezzel a metódussal a feladatod így néz ki:

    var array = new [] { '\0', '\0', '\0', '4' };
    Console.WriteLine(array.FirstIndexMatch(ch => ch != '\0'));

    "Illetve a \0 space-t jelöl?"

    Nem, dehogy is. Az Unicode NULL karaktert jelöli, aminek nyolc bites testvére C-ben ugyebár a string végét jelölte, viszont C#-ban nincs ilyen jelentősége, mert a char tömb tudja magáról a saját hosszát.

    "Vagyis ha ezt beillesztem egy string-be, akkor ott szóköz lesz?"

    Nem. Bekerül a stringbe, foglalja a helyet, de ha kiírod, nem jelenik meg semmi.
    Szerintem nem szabadna, de most csak .NET fiddle-ön tudtam kipróbálni, ott tényleg nem jelent meg semmi. Lehet, hogy konzolon máshogy megy.

    Az biztos, hogy a szóköz helyes jelölése: ' '

Új hozzászólás Aktív témák