Svobodný citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 8. Přehled novinek v příspěvku na blogu.
Byla vydána verze 1.93.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.
Svobodný operační systém ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, slaví 30. narozeniny.
Společnost Raspberry Pi má nově v nabídce flash disky Raspberry Pi Flash Drive: 128 GB za 30 dolarů a 256 GB za 55 dolarů.
Technologie Skip pro multiplatformní mobilní vývoj, která umožňuje vývojářům vytvářet iOS a Android aplikace z jediné Swift a SwiftUI kódové základny, se s vydáním verze 1.7 stala open source.
Na GitHubu byl zveřejněn algoritmus "Pro vás" sociální sítě 𝕏.
Byla vydána nová major verze 34.0.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání.
Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.
Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.
Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.
… více »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: