Open source router Turris Omnia NG Wired je v prodeji. Jedná se o Turris Omnia NG bez Wi-Fi. Je připraven pro zamontování do racku.
Sníh roztál a roztávají i bastlíři. Žene se na nás celá řada konferencí a seminářů technického rázu. Zajímá vás, jaké? Pak se připojte k 60. Virtuální Bastlírně, tedy k veřejné diskuzi bastlířů, techniků, učitelů i vědců. Jako vždy přijde na přetřes spousta novinek ze světa hardwaru, softwaru i bizáru. Na začátek lze očekávat hardwarová témata, tedy například nový KiCAD 10, nové akcelerátory LLM s nízkou spotřebou, nejvíce fosforeskující
… více »IuRe (Iuridicum Remedium) v rámci programu Digitální svobody zveřejnila analýzu dopadů a efektivity systémů ověřování věku v digitálním prostoru, která srovnává implementace ověřování věku v Austrálii, Velké Británii a Evropské unii.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.3 (𝕏, Mastodon). Přehled novinek a vylepšení v poznámkách k vydání.
Byla vydána nová verze 14.4 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Databáze DuckDB (Wikipedie) byla vydána ve verzi 1.5.0. S kódovým názvem Variegata (husice rajská). Přináší řadu vylepšení, včetně nového ergonomičtějšího CLI klienta nebo podporu pro typ VARIANT a vestavěný typ GEOMETRY.
V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace
… více »QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.
Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována
… více »Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].
Řešení dotazu:
#include <stdio.h>
#include <stdlib.h>
int lencln(char const * sin)
{
int len = 0;
for (int i = 0; sin[i] != '\0'; i++)
if((sin[i] >= 'A' && sin[i] <= 'Z') || (sin[i] >= 'a' && sin[i] <= 'z'))
len++;
return len;
}
char * clean(char const * sin){
int j = 0;
char *str_cln = NULL;
str_cln = (char*) malloc(sizeof(char) * (lencln(sin) + 1));
if(str_cln == NULL)
return NULL;
for (int i = 0; sin[i] != '\0'; i++)
if((sin[i] >= 'A' && sin[i] <= 'Z') || (sin[i] >= 'a' && sin[i] <= 'z'))
str_cln[j++] = sin[i];
str_cln[j]='\0'; // !!!
return str_cln;
}
int main(){
char sin[101];
scanf(" %100[^\n]s", sin);
char * strout = clean(sin);
puts(strout);
free(strout);
strout = NULL;
return 0;
}
A ten Tvoj obrázok je výstup z akého programu?
A ten Tvoj obrázok je výstup z akého programu?
z toho samýho jeho zkompilovanýho :O ;D hele jendův tutorial na asan ;D
.......obrázok..
btw text z konzole si mužeš normálně zkopírovat když ho uplně vobyčejně voznačíš myšičkou a pak máčkneš ctrl+shift+c a nemusíš čarovat s vobrázkama :O ;D ......a mužeš taky líp poskovávat jakejže soubor kde kompiluješ by tě učitelskej nemoch doxnout :O :D ;D ;D
podobně ctrl+shift+v na vložení textu do terminálu :O ;D
<pre>, tohle je na prd.
Nějak jsem to otipoval a hned při kompilaci vyletí warning:
a.c: In function ‘lencln’:
a.c:8:22: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
8 | if(sin[i] >= 'A' && sin[i] <= 'Z' || sin[i] >= 'a' && sin[i] <= 'z'){
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
a.c: In function ‘clean’:
a.c:23:22: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
23 | if(sin[i] >= 'A' && sin[i] <= 'Z' || sin[i] >= 'a' && sin[i] <= 'z') {
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
tak bych začal tím. Dále bývá zvykem přiložit vstup, na kterém to spadne (např. jestli když tady testuješ písmenka, tak musí mít vstup čísla nebo tak něco), ale naštěstí mi to spadlo na prvním co jsem zadal.
A ta chyba je podle mě v tom, že alokuješ str_cln mallocem (neinicializované), nikde do toho nenapíšeš terminující nulu a pak se to pokusíš printfnout. No a printf čte a čte a čte, až narazí na konec. Takže tam přidej na konec clean str_cln[j] = 0; nebo alokuj callocem, ten ti to vynuluje.
Plus dávám za použití satanizéru, který zjevně alokovanou paměť otravuje, protože když to zkompiluju bez něj, tak mi většinou malloc vrátí nuly (byť podle specifikace tam může být cokoli), protože heap je na začátku vynulovaný aby tam nebyla tajná data předchozích procesů, a chyba se tak hned neprojeví.
Tiskni
Sdílej: