Hirdetés
- Vége a dalnak: leállt az iPhone Air gyártása
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Yettel topik
- Apple iPhone 16 Pro - rutinvizsga
- Xiaomi 15T Pro - a téma nincs lezárva
- Google Pixel topik
- Realme GT Master Edition - mestermunka
- Samsung Galaxy A52s 5G - jó S-tehetség
- iPhone topik
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
Új hozzászólás Aktív témák
-
xors
senior tag
válasz
Headless
#4127
üzenetére
a char[32], az ugyanúgy egy char* mutató, csak foglalva van hozzá 32db hely a memóriában.
A méret igazából csalóka mert lehet röviebb is mint a lefoglalt, stringek esetén az utolsó karakter utáni lezáró nulla ('\0') jelzi a végét, a strcmp is ezt használja.
A hiba arra utal, hogy valamiért a strcmp ki van kapcsolva, esetleg próbáld meg az#include <cstring>
std::strcmp(egyik, masik)ha így sem megy, akkor kell írni egy összehasonlító függvényt, az nem egy nagy cucc
int myStrCmp (const char *s1, const char *s2) {
const unsigned char *p1 = (const unsigned char *)s1;
const unsigned char *p2 = (const unsigned char *)s2;
while (*p1 != '\0') {
if (*p2 == '\0') return 1;
if (*p2 > *p1) return -1;
if (*p1 > *p2) return 1;
p1++;
p2++;
}
if (*p2 != '\0') return -1;
return 0;
} -
Z_A_P
addikt
-
xors
senior tag
válasz
Headless
#4124
üzenetére
char* összehasonlításra ott a strcmp(const char* egyik, const char* masik) függvény. Ez tulajdonképpen a C string.
A tömböd jó úgy ahogy csináltad, const char* paramNames[4] = {//elemek}
Természetesen a char* -ok tömbjét (paramNames) végig kell nézned egyesével egy for ciklussal.Én ilyesmit csinálnék:
#include <string.h> //a strcmp -hez kell
for(int i = 0; i< 4; i++)
if(strcmp(name, paramNames[i])
//itt azt csinálsz amit akarsz velük, ekkor egyeznek megremélem tudtam segíteni

-
Headless
őstag
válasz
Headless
#4123
üzenetére
A korábbi gondom megoldódott, viszont most inkább felétek való kérdésem lenne.
van egy karakter tömböm
char name[32]nem én csináltam ez van megadva
és van egy (ezt úgy módosíthatom ahogy akarom)
const char *paramNames[4]={"ConPosX_1","ConPosY_1","ConPosX_2","ConPosY_2"};tömböm és össze kellene hasonlítani a kettőt ha megegyezik, akkor kéne vele csinálnom valamit.
Namár most ha így szimplán if-be rakom őket nem fog megegyezni.
if(name==paramNames[i])Próbáltam hogy a tömbömet valami olyasmi formában hozom létre, hogy
char paramNames[4][32];
paramNames[0]="ConPosX_1";csak így meg nem tudja a char [10]-et char[32]-be alakítani. Hogy kellene ezt helyesen megoldani?
Hú de el vagyok veszve itt a string/char, mutató tömbökkel sajnos ost jön elő, hogy nem vagyok képben ezekkel, próbáltam keresgélni, de sajnos nem találtam megfelelő megoldást.
-
válasz
Headless
#4121
üzenetére
"hogyan tudom kiolvasni, hogy hány paraméterrel rendelkezik?"
Sehogy. Alapvetően két dolgot tudsz csinálni:
1. valahogy átadod a pointertömb mellé azt is, hogy hány eleme van
2. (és ez a javasolt) hagyod a C-s tömbökét és C++-ban C++-ban programozol, ami jelen esetben azt jelenti, hogy az STL konténerei közül használsz valamit, pl. vectort.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Windows 11
- Házimozi belépő szinten
- Kormányok / autós szimulátorok topikja
- Kerékpárosok, bringások ide!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vezeték nélküli fülhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Kertészet, mezőgazdaság topik
- Gaming notebook topik
- További aktív témák...
- Dell Latitude 9410 i7 / 16GB RAM / 512GB SSD 2in1 érintőkijelző Profi gép, kedvező áron!
- AKCIÓ! Dobozos új Lenovo Yoga Slim9 Laptop! / i7-1165G7 16 GB 1 TB SSD UHD IPS TOUCH Garancia
- Intel 12th gen. i5-12500 / B660M / 16GB DDR4 félkonfig
- Toshiba Survillance S300 Pro 8 TB megfigyelőrendszerekhez - 2 db
- Gustard x18
- Készpénzes számítógép PC félkonfig alkatrész hardver felvásárlás személyesen / postával korrekt áron
- Huawei Watch 5 Titanium 46mm
- Azonnali készpénzes Intel i3 i5 i7 i9 12/13/14 gen processzor felvásárlás személyesen / csomagküldés
- Eladó egy Gigabyte komlet gép
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD Touch I HDMI I W11 I CAM I Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



