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
Fórum › C / C++
C - vratenie retazca
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));
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.
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).
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 :|
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
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Vrátenie ukazovateľa na pole. — založil Tayson
ADC Mega8 vratenie hodnoty (C) — založil Teddy
Vyhladanie reťazca — založil Anonym
Prepisovanie reťazca — založil Kent
NAhrada Retazca — založil Marek
Moderátoři diskuze