Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 163 (pdf).
Eric Lengyel dobrovolně uvolnil jako volné dílo svůj patentovaný algoritmus Slug. Algoritmus vykresluje text a vektorovou grafiku na GPU přímo z dat Bézierových křivek, aniž by využíval texturové mapy obsahující jakékoli předem vypočítané nebo uložené obrázky a počítá přesné pokrytí pro ostré a škálovatelné zobrazení písma, referenční ukázka implementace v HLSL shaderech je na GitHubu. Slug je volným dílem od 17. března letošního
… více »Sashiko (GitHub) je open source automatizovaný systém pro revizi kódu linuxového jádra. Monitoruje veřejné mailing listy a hodnotí navrhované změny pomocí umělé inteligence. Výpočetní zdroje a LLM tokeny poskytuje Google.
Cambalache, tj. RAD (rapid application development) nástroj pro GTK 4 a GTK 3, dospěl po pěti letech vývoje do verze 1.0. Instalovat jej lze i z Flathubu.
KiCad (Wikipedie), sada svobodných softwarových nástrojů pro počítačový návrh elektronických zařízení (EDA), byl vydán v nové major verzi 10.0.0 (𝕏). Přehled novinek v příspěvku na blogu.
Letošní Turingovou cenu (2025 ACM A.M. Turing Award, Nobelova cena informatiky) získali Charles H. Bennett a Gilles Brassard za základní přínosy do oboru kvantové informatiky, které převrátily pojetí bezpečné neprolomitelné komunikace a výpočetní techniky. Jejich protokol BB84 z roku 1984 umožnil fyzikálně zaručený bezpečný přenos šifrovacích klíčů, zatímco jejich práce o kvantové teleportaci položila teoretické základy pro budoucí kvantový internet. Jejich práce spojila fyziku s informatikou a ovlivnila celou generaci vědců.
Firefox 149 dostupný od 24. března přinese bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně (s CZ a SK se zatím nepočítá) a zobrazení dvou webových stránek vedle sebe v jednom panelu (split view). Firefox Labs 149 umožní přidat poznámky k panelům (tab notes, videoukázka).
Byla vydána nová stabilní verze 7.9 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 146. Přehled novinek i s náhledy v příspěvku na blogu.
Dle plánu byla vydána Opera GX pro Linux. Ke stažení je .deb i .rpm. V plánu je flatpak. Opera GX je webový prohlížeč zaměřený na hráče počítačových her.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.27.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Dobrý den, řeším jedem problém, který mi docela láme hlavu. Řekněme, že mám nějaký řetězec a chci jej předat jako parametr funkci, která vrátí stejně dlouhý řetězec s přeházenými písmeny. Jak na to? Když zkusím třeba:
char *Fce(char *str)
{
char *newStr = str;
newStr[1] = newStr[6]; // Zde je již chyba!
printf("%c\n", newStr[1]);
return newStr;
}
Jde o to, že jsem zkoušel všemožné kombinace, ale zkrátka jsem nepřišel na to, jak prohodit znaky u jiného řetězce než s předem definovanou délkou (např: "char str[10];").
Byl by někdo tak laskav a napsal mi takovou funkci která přehodí některé znaky a vrátí upravený řetězec? Děkuji
Řešení dotazu:
Děkuji za konstruktivní návrh, ale bohužel k řešení to nevede.Ale vede. Jen delší cestou, než jste ochoten akceptovat.
Samozřejmě jsem před položením dotazu hledal kde se dalo. Bohužel marně.To jste zřejmně minul tento článek: http://www.linuxsoft.cz/article.php?id_article=842
Mimochodem nevím jak vy, ale pod pojmem "ofixlovat" si představuji něco opsat, ne něco pochopit.Ano, přesně tak. Pokud chcete pochopit, hotové řešení jedné konkrétní funkce vám stačit nebude.
novy = (char*) malloc(strlen(stary)+1); /* alokace stringu stejne velikosti */
if (novy == NULL)
{
/* nahlasit chyby alokace */
}
strcpy(novy,stary); /* zkopirovani puvodniho stringu do nove alokovane pameti */
/* ... pouziti ... */
free(novy); /* dealokace (uvolneni pameti) */
Místo malloc a strcpy lze také použít strdup:
novy = strdup(stary); /* alokace noveho stringu stejne velikosti a zkopirovani obsahu ze stareho */
if (novy == NULL)
{
/* nahlasit chyby alokace */
}
/* ... pouziti ... */
free(novy); /* dealokace (uvolneni pameti) */
Funkce strdup() není součástí ANSI C, tedy nemusí být přenositelná na jiné systémy.
char *prehod(const char *str)
{
char *buff;
int n, i = 0;
if ((buff = (char *)malloc((strlen(str) + 1) * sizeof(char))) == NULL)
{
fprintf(stdout, "Chyba alokace.\n");
exit (1);
}
for(n = strlen(str) - 1; n >= 0; n--)
buff[i++] = str[n];
buff[i] = '\0';
return (buff);
}
int main(void)
{
char str[5];
strcpy(str, "ahoj");
fprintf(stdout, "%s\n", prehod(str));
return (0);
}
Tiskni
Sdílej: