abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 12:33 | Zajímavý projekt

    Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 12:22 | Nová verze

    Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 0
    včera 05:00 | Komunita

    Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).

    Ladislav Hagara | Komentářů: 8
    13.2. 19:44 | Zajímavý projekt

    Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    13.2. 17:44 | Nová verze

    Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    13.2. 12:11 | IT novinky

    Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.

    Ladislav Hagara | Komentářů: 16
    13.2. 11:44 | IT novinky

    Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.

    Ladislav Hagara | Komentářů: 2
    13.2. 04:44 | Humor

    Agent umělé inteligence vytvořil 'útočný' článek o Scottu Shambaughovi, dobrovolném správci knihovny matplotlib, poté, co vývojář odmítl agentem navrženou změnu kódu (pull request). 'Uražený' agent autonomně sepsal a publikoval na svém blogu článek, který přisuzuje Shambaughovi smyšlené motivace, egoismus a strach z AI coby konkurence.

    NUKE GAZA! 🎆 | Komentářů: 32
    12.2. 20:11 | Nová verze

    Bylo vydáno Ubuntu 24.04.4 LTS, tj. čtvrté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    12.2. 17:44 | Pozvánky

    V pátek 20. února 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 6. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj a uživatelský prostor. Akce proběhne od 10:00 do večera. Hackday je určen všem, kteří si chtějí prakticky vyzkoušet práci s linuxovým jádrem i uživatelským prostorem, od posílání patchů například pomocí nástroje b4, přes balíčkování a Flatpak až po drobné úpravy

    … více »
    lkocman | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (1%)
     (12%)
     (27%)
    Celkem 870 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: porovnanie pola typu char

    26.2.2006 19:46 pyty
    porovnanie pola typu char
    Přečteno: 183×
    zdravim. rad by som vedel, ako sa vyriesi nasledujuca situacia:
    char retazec[3];
    cin << retazec[];
    cout << retazec[] << endl;
    if (retazec == "ahoj")
    {
        cout << "true";
    }
    else
    {
        cout << "false";
    }
    
    ked napisem ahoj, vrati mi to "ahoj" a "false". skusal som to upravit napr if (retazec == "ahoj\n") (Perl by to myslim zozral keby tam bolo eq :) apod. Ale nic som nevyriesil. Chapem ze to je ulozene v poli, takze by sa to mohlo dat vyriesit nejakym porovnanim z polom. Neide mi to ani ked si tu premennu nadefinujem v kode (teda bez cin). A co ma trapi najviac, kvoli comu som to vlastne robil je, mi to neporovna parameter predavany funkcii main z prikazoveho riadku. teda ked som to spravne pochopil, argv je vnorene pole a k tomu este ako ukzaovatel? ako to teda vyriesit? ukazovatele mi zatial akosi neidu a mam v tom truchu zmatok. pls pomozte niekto....

    Odpovědi

    Luboš Doležel (Doli) avatar 26.2.2006 19:55 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    1. Proč tam dáváte retazec[]?
    2. Na porovnání používejte strcmp(3)
    Luboš Doležel (Doli) avatar 26.2.2006 19:57 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    3. Hrůza - retazec je pole jen na 2 znaky. Výsledkem je buffer overrun.
    26.2.2006 20:22 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    Ad 2: když už se používá standardní C++ knihovna, tak proč jen napůl? Správné je použít typ std::string a pak je namístě i operátor ==.
    Josef Kufner avatar 27.2.2006 13:27 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    Tojo, ale je pak mensi sance, ze mu dojde, ze porovnava pointery a ne data...
    Hello world ! Segmentation fault (core dumped)
    26.2.2006 19:59 Boris
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    chyba je zde: retazec == "ahoj"
    porovnáváte totiž ne řetězce, ale proměnné typu char[], což je pointer na začátek řetězce. Je nutné použít buď fci strcmp deklarovanou v string.h: if (! strcmp (retazec, "ahoj")), nebo (vzhledem k tomu, že to je C++ kód) je daleko čistějším řešením typ std::string místo char[], kde to jde dělat intuitivně tak, jak jste napsal (tedy std::string retazec
    ...
    if (retazec == "ahoj")
    . Je myslím v #include <string>
    27.2.2006 12:18 pyty
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    ono to funguje, ale stale to nevyriesilo moj problem:
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char **argv)
    {
     if (!strcmp(argv[2],"ahoj"))
       {
         cout << "true\n";
       }
     else
       {
         cout << "false\n";
       }
    }
    
    bud mi to vrati false ked tam nedam nic, alebo segmention fault ked dam ako parameter ahoj alebo hocico ine... skusal som to aj ako
    int main(int argc, char *argv[])
    aky je medzi tym vlastne rozdiel ?
    27.2.2006 12:37 mike
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    co takhle argv[1] pro prvni pozicni parametr (nulty je jmeno binarky)
    27.2.2006 12:49 #Tom
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    Sice něco z níže uvedeného tu už někteří napsali, ale je dobré si shrnout všechny chyby:
    • Pokud je velikost paměti pro načtení řetězce omezená (char retezec[velikost]), je dobré použít takovou funkci, kterou lze rovněž omezit, tj. třeba fgets(retezec, sizeof(retezec), stdin). A nebo lze použít vhodnější string.
    • Samotné načtení se zapíše pomocí proudů takto:
      cin >> retezec;
      
      Místo cin může přijít jakýkoli jiný objekt vzešlý z istream, ale musí tam být šipečky od objektu, ne do něj.
    • Operátor porovnání == porovnává hodnoty, u standardních polí jsou to tedy nějaké ukazatele. V C++ jej lze přetížit, takže u objektů typu string nebo jednoho string a jednoho pole char * se porovnávají skutečně řetězce.
    • Parametry funkce main jsou záludné. V argc je počet parametrů, v argv je pole ukazatelů na řetězce s těmito parametry. Délka pole argv může být pokaždé různá, jediný prvek, který je přítomen vždy, je argv[0], tedy název programu. Pokud chceme pracovat s nějakým dalším, je potřeba se nejprve ujistit o jeho přítomnosti pomocí argc.
    • Pro ukončení řádku je lepší použít při práci s proudy spíše endl než "\n".
    27.2.2006 18:15 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    S tím posledním bodem bych si dovolil nesouhlasit, nebo aspoň ne tak obecně, jak jste to napsal. V tomto konkrétním případě je to celkem jedno, ale když to budete používat všude, výsledkem budou občas zoufale neefektivní aplikace. Viz C++ FAQ.
    27.2.2006 14:23 podlesh | skóre: 38 | Freiburg im Breisgau
    Rozbalit Rozbalit vše Re: porovnanie pola typu char
    Bohužel, mám špatnou zprávu.

    Výrok "ukazovatele mi zatial akosi neidu" je ekvivalentní výroku "o C netuším vůbec nic."

    Jak se kdysi jeden člověk (paskma) vyjádřil, C je přenositelný asembler. Programování v C/asembleru vyžaduje znalost práce mikroprocesoru a jasnou představu o tom, co je uloženo v paměti a jak. Pro CPU neexistují žádné řetězce, existují jen byty v paměti a adresy těchto bytů.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.