Ako vymazať reťazec – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako vymazať reťazec – C / C++ – Fórum – Programujte.comAko vymazať reťazec – C / C++ – Fórum – Programujte.com

 

xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #1
-
0
-

Zdravým. 
Ako začiatočník riešim menšiu dilemu. Zaujíma ma skôr správna syntax a správny postup. 
Používam nasledujúcu funkciu:
strcpy(a, b) . Vždy keď zbehne daná funkcia chcem hodnotu A vymazať, aby ak náhodou hodnota B ktorú vypočítavam nevyhovovala podmienke IF a teda, aby mi tam neostali staré hodnoty, tá hodnota A je premenná, ktorá sa v kóde ukladá ako state variable. 
Je správny takýto zápis? 
strcpy(a, ' ')? Alebo má C nejaký špeciálny príkaz? 
Ďakujem. 

Nahlásit jako SPAM
IP: 94.136.137.–
KIIV
~ Moderátor
+43
God of flame
26. 3. 2015   #2
-
0
-

staci zapsat na prvni pozici ukoncovaci znak '\0'

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #3
-
0
-

#2 KIIV
Máš na mysli niečo také? 

a[] = '\0'

Nahlásit jako SPAM
IP: 94.136.137.–
KIIV
~ Moderátor
+43
God of flame
26. 3. 2015   #4
-
0
-

a[0] = '\0';   nebo i    *a = '\0';

a tak dale.

Kazdopadne strcpy je urcene pro retezce, se znakem: ' '  to v lepsim pripade nezkompilujes, v horsim spadne.

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #5
-
0
-

#4 KIIV
Zle som sa vyjadril :) 

Mám tú funkciu strcpy(a,b), kde "a" je samozrejme char a aj "b" je char. A ak platí podmienka pre inú premennú nie pre tú z tejto funkcie tak nakopíruj "b" do "a". (b reprezentuje IP adresu premennej, ktorú testujem tou podmienkou). 
Ale vďaka za radu. 

Nahlásit jako SPAM
IP: 94.136.137.–
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #6
-
0
-

#5 xxx7691
Ale nefunguje to, teraz mi to už prepisuje neustále a nedostávam na výstupe žiadne hodnoty :( 

Nahlásit jako SPAM
IP: 94.136.137.–
KIIV
~ Moderátor
+43
God of flame
26. 3. 2015   #7
-
0
-

#5 xxx7691
jestli je to    char a, b;   a na neco inicializovane, tak strcpy urcite nebude fungovat... je to urcene pro retezce znaku ukoncene \0, ne pro jeden znak

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #8
-
0
-

#7 KIIV
je to reťazec reprezentujúci IP adresu počítača. teda 192.0.0.5 (príklad). Je to reálne IP adresa počítača, nie len mnou vytvorené náhodné premenné. a ono to skopíruje ak tá podmienka vyhovuje, uloží to do daného reťazca, ale ak daná podmienka prestane platiť daná IP adresa v tom reťazci zostane uložená. Ja chcem urobiť to aby ak neplatí, daný reťazec vynulovalo. 

Nahlásit jako SPAM
IP: 94.136.137.–
KIIV
~ Moderátor
+43
God of flame
26. 3. 2015   #9
-
0
-

na to musi spolehlive stacit podminka a zapsani '\0' misto prvniho znaku

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #10
-
0
-

#9 KIIV
tak prečo mi potom danú IP adresu vynuluje aj keď vyhovuje podmienke? 

ip = pomocny->ip_adresa;

...

next_rn = pomocny->parameter_rn;

 if(next_rn > 0 && next_rn < (max_rn*0.25)) {
    next_rn_pom_4 = next_rn;
    strcpy(next_hrac_rn_4, ip);
    }
     else {
     next_hrac_rn_4[0] = '\0';
     }

Dajme tomu že max_rn je 0.113132, potom ak to vynásobím 0.25 tak je to 0.028283 a hodnota next_rn_pom_4 je 0.016521. Čiže teoreticky by to malo platiť, prečo to potom nejde? 

Nahlásit jako SPAM
IP: 94.136.137.–
xxx7691
~ Anonymní uživatel
16 příspěvků
26. 3. 2015   #11
-
0
-

Na chybu som prišiel. 
Daná štruktúra sa prechádza v cykle do-while, teda hodnota next_rn je vždy iná a keď príde posledná hodnota ktorá nevyhovuje podmienke, tak to samozrejme zmaže. 
Dá sa to teda testovať efektívnejšie? 

Nahlásit jako SPAM
IP: 94.136.137.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 80 hostů

Podobná vlákna

Malloc retazec — založil Carmagedon

Retazec v strukture — založil michal

Prevod cisla na retazec — založil olgo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý