V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 15.0 (Mastodon). Forgejo je fork Gitei.
Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.
Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a
… více »Byla vydána verze 1.95.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.
Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »
Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.04. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Kryptografická knihovna OpenSSL byla vydána v nové verzi 4.0. Přehled změn v souboru CHANGES.md na GitHubu. Odstraněna byla podpora SSLv2 Client Hello a SSLv3. Ve výchozím nastavení byla zakázána podpora odmítnutých eliptických křivek v TLS dle RFC 8422. Přibyla například podpora Encrypted Client Hello (ECH, RFC 9849).
curl up 2026, tj. setkání vývojářů a uživatelů curlu, proběhne opět v Praze. O víkendu 23. a 24. května v Pracovně.
Aplikace pro ověřování věku uživatelů on-line platforem je technicky hotová a brzy bude k dispozici pro občany EU, oznámila dnes předsedkyně Evropské komise Ursula von der Leyenová. Půjde podle ní o bezplatné a snadno použitelné řešení, které pomůže chránit děti před škodlivým a nelegálním obsahem. Aplikace bude podle ní fungovat na jakémkoli zařízení a bude zcela anonymní.
"Prvni"Tak hned prvni iterace while (input[i]) dosadi do tmpsrc[0] pismenko "p" do tmpsrc[1] dosadi "P", tmpsrc[2] "r" atd az tam vypise cely retezec z pole input. Jeste nikdy jsem na toto podivne chovani nenarazil. Nejdirv me napadlo, ze by se mohlo jedna o to, ze se predava cela adresa input[], jenze tady jde zkratka o prachobycejne pripinani jendotlivych pismenek... nechapu to a bydy velmi rad, kdyz mi to nekdo osvetli. Doufam, ze jsem vse napsal srozumitelne.
while (fgets(input, 512 , fr) != NULL){
int i = 0;
line++;
unsigned len = strlen(input);
char tmpstr[len];
tmpstr[0] = 0; //pro poreby fce strcat, ktera appenduje od prvni nuly
char c[1];
while (input[i]){
c[0] = input[i];
if (isupper(*c)) c[0]=tolower(*c); //pismenko se predela na male jeste bez problemu
strcat(tmpstr, c); //zde problem, spolu s konvertovanym pismenkem se pripne cely obsah input[];
i++;
}
Řešení dotazu:
char c[1]. Teda jednoprvkové pole charov. Neskôr s ním ale zaobchádzaš ako so stringom keď ho pošleš do strcat(). To ale robí galibu, pretože nie je "zero-terminated". Neskúmal som či sú v tom ešte aj nejaké iné problémy, ale keď už si zvolil tento prístup tak skús deklarovať c ako char c[]={0,0};
Predsa len by som ale odporučil skúsiť nájsť nejaké iné riešenie, pretože niektoré znaky sa pri prevode na veľké/malé menia počet znakov (napr. nemecké ostré s), alebo niektoré znaky nie sú v jednom char-e pri multibyte-ovom kódovaní, atď ...
char c[]={0,0}; pomohla, ted uz to kopiruje korektne, diky.
Ja bych taky rad nasel jine reseni, jenze hledal jsem dlouho a na zadne jsem neprisel, nez vse prevest na mala/velka pismenka a pak pouzit strstr(). Kdyby byla nejaka funkce jako strstrt() ale case insensitive, tak beru vsema deseti :)
strupr() a robiť strstr() na výsledku.
Ak do úvahy pripadajú aj iné než ascii znaky, tak preveď text na wchar cez mbstowcs() a hľadaj pomocou wcsstr().
POSIXovou strcasecmp jsem zavrhl, protoze kontroluje cely string naraz, nevraci ukazatel na prvni vyskyt jako case sensitive strstr(), coz je mimoradna skoda
Proč by měla vracet nějaký výskyt? Výskyt čeho? Tvrdíte, že chcete porovnat dva řetězce, a přesně to strcasecmp() dělá. Vrací vám výsledek toho porovnání. Oproti tomu strstr() je funkce pro vyhledání podřetězce, takže je celkem logické, že vrací pointer na první výskyt toho podřetězce; jen jaksi neporovnává…
Zásadní problém je úplně jiný: ta funkce ignoruje locale, takže vám například veškerá slova začínající písmenem s diakritikou zařadí až za "z". Proto je vhodnější použít strcoll().
Doufam, ze jsem vse napsal srozumitelne.
Moc ne. Zkuste konkrétně a přesně napsat, co vlastně potřebujete. To, co jste napsal, má příliš mnoho možných výkladů. Pokud např. potřebujete zjistit první znak, kde se dva řetězce liší (s ohledem na aktuální locale a bez rozlišení malých a velkých písmen), můžete použít mbrtowc() na načítání znaků a pak porovnávat hodnoty, které vám vrátí towlower(). Konvertovat si celý řetězec je zbytečné a neefektivní.
http://www.abclinuxu.cz/poradna/programovani/show/366089
strcat uplne zbytecne kvadratickou slozitost. Priom by to slo udelat uplne jednoduse:
while (input[i])
{
tmpstr[i] = tolower(input[i]);
++i;
}
tmpstr[i] = 0;
dalsi vec je ze deklarace
char tmpstr[len];vytvori pole dost velky na ulozeni retezce, ale ne ukoncujicy nuly totez:
char c[1];proboha tam je tolik chyb ze bych to ani nespocital
Tiskni
Sdílej: