- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy A54 - türelemjáték
- Xiaomi 15 - kicsi telefon nagy energiával
- Nothing Phone 2a - semmi nem drága
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S23 Ultra - non plus ultra
- Utcakép banánnal: félrecsúszhat a Google Térkép fókusza
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Milyen okostelefont vegyek?
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: RAM gondolatok: Mennyi a minimum? DDR3 is jó?
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Új hozzászólás Aktív témák
-
Hani
aktív tag
Uraim!
El vagyok keseredve.
Jó 10 év után újra elővettem a C-t, gyorsan átfutottam pár nap alatt az egészet és arra kellett rájönnöm, hogy valahol elhagytam az agyam, mert akkoriban még egész jól ment, most meg alapvető dolgokat nem értek. Persze az is lehet, hogy mindig is hülye voltam, csak akkoriban nem jöttek elő ezek a kérdések... nem tudom, mindenesetre segítséget kérek, mert magamtól nem megy és a google sem a barátom ezekben (és még egy rakás másban sem, de most ezek jutottak hirtelen eszembe):1. Van egy olyanom, hogy
int a = 1, b = 1, d = 1;
printf("%d, %d, %d", ++a + ++a + a++, a++ + ++b, ++d + d++ + a++);
Kérdés, hogy mit ír ki? A megoldás: 15, 4, 5. De miért?
2. Legyen egy long int-em:
long int li = 12345L;
Miért kell nekem az 12345 végére az L betű? A fordítónak jelzem, ha nem lenne elég, hogy odaírom, hogy long? Saját magamnak jelzem, nehogy elfelejtsem a típust? Egyéb?3. scanf és az ő filterezése.
Elvileg lehet olyat, hogy scanf("%[0-9a-fA-F]", &akarmi), hogy csak számokat és a-f / A-F karaktereket olvashasson be. Nekem mégsem megy, sem a komplementer változata ^0-9... verzióban. Mit rontok el?4. Pointeres változók.
Miben különbözik az int* i és az int *i ? Van egyáltalán bármi? Mondjuk ezt közben pont megtaláltam, miközben írtam, úgyhogy sztornó (a válasz itt)5. enum-ok.
Legyen két felsorolásom:
enum birds {SPARROW, PEACOCK=5, PARROT};
enum animals {TIGER = 8, LION, RABBIT, ZEBRA};enum birds m;
m = LION; //Ezt elvileg nem lehetne, de mégis lehet. Miért?
Szóval én eddig azt hittem, hogy ha van egy enum típusú változóm, akkor azokat az értékeket adhatom neki, amik a felsorolásban szerepelnek, de úgy tűnik, mégsem. Valahol elvesztettem a fonalat.+1. Nagybetűsíteni szeretnék egy stringet egy függvénnyel: megkapni paraméterben és visszaadni a nagybetűs verzióját. Erre több megoldás is lenne, de valahogy egyik sem az igazi:
- valamiért nem viszi a sima strupr()-t, ráadásul az az eredeti változót változtatja meg, ami nem oké. Csinálnék helyette egy másikat, de vagy kell hozzá globális változó, vagy nem ideális a memóriafelhasználás, vagy megváltoztatja az is az eredeti paramétert... Hogy kéne ezt normálisan?
Amikkel próbálkoztam, azok ezek:void upper_string(char *string)
//Ez már megy, de ez is megváltoztatja az eredeti paramétert, ugye.
{
while(*string)
{
if ( *string >= 'a' && *string <= 'z' )
*string = *string - 32;
string++;
}
}Lehetne olyan, hogy:
char* upper_string2(const char *string)
{
int i=0;/*
Namármost. Vagy definiálok egy globális char copystr[]=""; változót és annak a címét használom,
vagy definiálunk itt egy olyat, hogy char copystr[(strlen(string)]=""; , ami viszont lokális változó,
és nem jó ötlet lokális változó címét visszaadni a függvényen kívülre; vagy csinálunk egy static változót
itt helyben, aminek viszont méretet kell adni, amit nem lehet csak úgy strlen-nel. Én ezt az utóbbit választom, mondjuk 255-ös hosszal, de hát ez is milyen már.
*/static char copystr[255]; //Lehetne ez [65535] is akár.
strcpy(copystr, string);while(string [ i]!='\0')
{
//Csak a kisbetuket valtoztatjuk, a tobbi marad
if ( string(i) >= 'a' && string(i) <= 'z' )
copystr(i) = string(i)-32;
i++;
}
return copystr;
}Vagy lehetne simán ez is, de ez is megváltoztatja az eredeti változómat:
char* upper_string3(char str[])
{
int i=0;while(str(i) !='\0')
{
if ( str(i) >= 'a' && str(i) <= 'z' )
str(i) = str(i)-32;
i++;
}
return str;
}Szóval van baj, nem tudom, hogy mikorra állnak vissza a fejemben a dolgok, de elkelne egy kis segítség.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Építő/felújító topik
- Autós topik
- Luck Dragon: Asszociációs játék. :)
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Samsung kuponkunyeráló
- Kályha, kazán, kandalló stb. fűtés
- Villanyszerelés
- További aktív témák...
- Asus VZ239 23 Full HD Monitor 6 hó garancia Házhozszállítás
- Apple iPhone 16e 128 GB White 100% Akkumulátor 12 hónap Garancia Beszámítás Házhozszállítás
- Samsung Galaxy S24 Ultra 12/256 GB Titanium Gray 6 hónap Garancia Beszámítás Házhozszállítás
- Xiaomi 14 12/512GB - Kártyafüggetlen, Fekete, ÚJSZERŰ - 1 Év Garanciával
- Xiaomi 15 12/512GB - Kártyafüggetlen, Zöld, ÚJSZERŰ - 1 Év Garanciával
- HP 430 G5 Intel CEL 3865U laptop (kijelző hibás)
- BESZÁMÍTÁS! ASRock Phantom Gaming RX 7900XTX 24GB garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- LG 55QNED823RE / QNED / 55" - 140 cm / 4K UHD / 120Hz & 4ms / HDR Dolby Vision / FreeSync + HDMI 2.1
- BESZÁMÍTÁS! GIGABYTE H610M i5 12400 16GB DDR4 512GB SSD RTX 5060Ti 16GB Zalman Z1 PLUS Corsair 650W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

