- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- bambano: Bambanő háza tája
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- MasterDeeJay: Noname 1TB-os SATA SSD teszt
- Mr Dini: Mindent a StreamSharkról!
- Hieronymus: A németországi vasúthálózat
- ldave: New Game Blitz - 2025
- Elektromos rásegítésű kerékpárok
Új hozzászólás Aktív témák
-
3man
csendes tag
Mivel nem en vok Chuck Norris, ezert nem fogom fejben debuggolni a progit.
A szokasos eljaras, hogy egy tesztelo reszt irsz hozza. Meghivod ket egyenlo stringgel, majd egyrovidebb/egyhosszabb es forditva stringgel. Ha eletben marad a kod, es az eredmeny amit kiir helyes, akkor kesz.
-
3man
csendes tag
int strcmp(char *a;char*b){
char res;
whil (1);
if ((res=(a-b++))|!a++)
break;
return res;
}Ha megtanulnad azt a par jelolest, ami ebben a rovid valamiben talalhato, mar tudnad mi a baja.
A 'res' 'char'-kent van definialva az 'a' es a 'b' 'char *'. Az = ertekadasnal legtobbszor a ket oldal tipusa egyenlo. Hogy lesz a 'char *a'-bol 'char'? Mar valahol leirtam, a definicio megmondja 'char , *a' -ra is fel lehet bontani, meg 'char* , a'-ra . Tehat az 'a' az mutato a '*a' az char. Egyszeru.
A c megengedi a nagyon tomor kod irasat, de ez nem celravezeto. Evek mulva ha eloveszed a kodot, egy eleg osszetett sornal gondolkozni kell, hogy hogyan is gondoltad ezt annak idejen. Atlathato egyszeru kodot kell irni, ami konnyen modosithato. Ilyen elemi szinten nem mindig kell modositani egy programot, de akkor is az a helyes ut. Es ugy kevesebb a hibalehetoseg is.
-
Jester01
veterán
-
3man
csendes tag
Ez nagyon alapszint, gondolom azert nem valaszolt senki.
Ha mar alapszint. Mikor mutato valami, es mikor char?
Ehhez csak a definiciot kell mindig megnezni.
Az str igy volt definialva
int strlen(char *str)
Ezt fel lehet bontani tobbfelekepp.
char * , str
char , * str
Ebbol mar latszik, mikor mit jelent a kifejezes. Ha csak str-t irok, akkor az char *
ha *str-t, akkor az char.Lehetne ilyen is a definicio
char **str
Ekkor tobb felbontasi lehetoseg kinalkozik. De a definiciobol mindig lehet tudni, mit jelent az adott kifejezes. Az utobbinal **str az char tipust ad, mig *str egy char *-ot.A c nyelvben a mutato egyben egy tomb elso elemere is mutat.
Tehat a char *str megegyezik a char str[] definicioval. Ebbol kovetkezik, hogy minden mutatot indexelhetunk, mint egy tombot, es minden tomb neve egyben mutato, ami egy cimet tarol. -
3man
csendes tag
Az utolso sor az esetek 99.99 szazalekaban jol mukodik, de..
A cim 32 bites lehet, ahogy az int is, de az int elojeles. Ez problemat okozhat, ha a str joval 0x7fffffff alatt van, mig a karakterlanc vege joval 0x8000000 folott.
Ekkor az int-re konvertalasnal az elso szam pozitiv lesz, mig a masodik negativ., es a kulombseguk is negativ, ha a karakterlanc eleg nagy. Gyakorlatilag nem lehet akkora karakterlancot letrehozni, hogy a hiba elojojjon, de ez akkor is hiba.
A visszateresi erteknek unsigned int-nek kellene lennie.erdemes probalgatni, mikor lesz negativ az eredmeny, es mikor nem.
int a=0xbfffffff;
a-=0x30000000;
printf("%d \n",a); -
3man
csendes tag
Adott a feladat:
int strlen(char*str){
char*tmp=*str;
if(!strt)
return 0;
while(str+#);
return*str-*tmp;
}Eloszor is
1.)tmp egy cim, mig *str egy char
2.)nincs olyan hogy strt
3.4) while(str+#); ebbol a sorbol hianyzik egy * es egy +
5.) a visszateresi ertek int,es nem charint strlen(char *str){
char *tmp=str;
if(!str)
return 0;
while(*str++);
return str-tmp;
}
vagy inkabb
return (int)(str-tmp);
Ú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!
- Vélemény: nem úgy tűnik, de Lip-Bu Tan most menti meg az Intelt
- Debrecen és környéke adok-veszek-beszélgetek
- OLED TV topic
- HiFi műszaki szemmel - sztereó hangrendszerek
- A fociról könnyedén, egy baráti társaságban
- Kés topik
- AMD vs. INTEL vs. NVIDIA
- Opel topik
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Azonnali informatikai kérdések órája
- További aktív témák...
- Samsung Galaxy Watch Ultra 2év garancia!
- Újszerű Apple MacBook Air 13.6" (2024) - M3 - 68 Ciklus- 8GB/256GB (MRXN3MG/A) Asztroszürke - MAGYAR
- G.SKILL 32GB Trident Z5 DDR5 6400MHz CL32 KIT F5-6400J3239G16GX2-TZ5S
- ZBook Power 15 G10 15.6" FHD IPS i7-13700H RTX A1000 32GB 512GB NVMe gar
- Nitro AN515-44 15.6" FHD IPS Ryzen 5 4600H GTX 1650 16GB 512GB NVMe gar
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Motorola E40 64GB, Kártyafüggetlen, 1 Év Garanciával
- Xbox Ultimate előfizetések
- Új monitor állvány - csak össze lett szerelve
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest