C - vratenie retazca – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C - vratenie retazca – C / C++ – Fórum – Programujte.comC - vratenie retazca – C / C++ – Fórum – Programujte.com

 

olgo0
Věrný člen
16. 5. 2007   #1
-
0
-

v tomto topiku som snad poprve tak mi prosim odpustite ak tento dotaz uz bol zodpovedany.

mam preblem s vracanim recazca v c, nikde som nenasiel postup ako to ma pri retazci vizerat. metoda pokus-omyl prekvapivo neslavi uspech. konkretne ma trapi toto:

aky ma mat funkci navratovi typ?
co ma vlasne vracat (co bude napisane za prikazom return)?

keby ste niekto boli tak laskavi a napisali jednoduchu nicnerobiacu funkciu ktora len vrati retazec. thx

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Matrix17
~ Anonymní uživatel
300 příspěvků
16. 5. 2007   #2
-
0
-

Tak třeba takhle:



char *uprav(char *rett)
{
for (int i = 0; i < MAX; i++)
if (rett[i] == 'a')
rett[i] = 'b';

return rett;
}

Je to opravdu nesmyslná funkce. Pokud je v i-tem prvku řetězce a nahradí ho b. A vrátí adresu prvního prvku řetězce.
Pokud ten řetězec chceš uložit tak:
strcpy(ret, uprav(ret));

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
16. 5. 2007   #3
-
0
-

dik za pohotovu odpoved zda sa ze to funguje. mohol by si my pls vysvetlit co znamenaju vsetky tie hviezdicky? pripadne link na nejaky zdroj kde je to rozpisane.

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Matrix17
~ Anonymní uživatel
300 příspěvků
16. 5. 2007   #4
-
0
-

Ty hvězdičky jsou vlasně deklarace ukazatele. S polem se dá pracovat pomocí indexů nebo pomocí aritmetiky ukazatelů. Tudíž když pracuješ s řetězcem např. char retezec[20] pracuješ vlastně s adresou jeho prvního prvku čili retezec představuje tu adresu. char * je ukazatel kterému se při zavolání funkce přiřadí právě adresa začátku řetězce při volání v příkladu. Pak s ním lze pracovat jednak jako s klasickým polem a také pomocí ukazatelů čili *(retezec + 1).

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
16. 5. 2007   #5
-
0
-

ano na co su hviezdicky mi je (skoro) jasne ale myslel som ich vyznam v tomto konkretnom priklade. to druhu by som este este pochopil ale ta prva . . .

btw.: ale som u toho php zlenivel :|

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Matrix17
~ Anonymní uživatel
300 příspěvků
17. 5. 2007   #6
-
0
-

první myslíš tu char *uprav? Jestli jo tak to je to co sem psal výše musíš vrátit adresu řetězce jelikož je v paměti uloženej za sebou tak musíš znát začátek čili adresu začátku řetězce. Tady je něco o ukazatelích:
http://www.builder.cz/art/cpp/cpp_pole_ukaz.html

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
17. 5. 2007   #7
-
0
-

n osnad je to jasnejsie. dik za link

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
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, 31 hostů

Podobná vlákna

Vyhladanie reťazca — založil Anonym

Prepisovanie reťazca — založil Kent

NAhrada Retazca — založil Marek

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ý