Ahoj, dostali jsme ve škole úkol, tak jsem na něm začal dělat. 1 úloha zvládnutá ale u této druhé jsem se sekl a dost.. Mohl by ji někdo udělat a vysvětlit mi jak to vlastně udělal (respektivě nějak to "analizovat")abych to pochopil . Byl bych moc vděčný. Lámu si nad tím hlavu už 2dny a zatím jsem vymyslel jen jak to udělat teoreticky ale i to možná bude špatně.. (když jsem požádal učitele o vysvětlení tak to vysvětlil na jiném příkladu a já z toho byl ještě víc blbej.:( )
úloha :
*Napište funkci char * strCatAt(char *s1, const char *s2, int p), která vloží do řetězce s1 na pozici p
řetězec s2. Je-li p větší, než délka s1, připojí s2 na konec s1. Uvažujte, že v s1 je alokován dostatečný
prostor. Návratovou hodnotou je ukazatel na výsledný řetězec, resp. hodnota NULL byl-li s2 prázdný
nebo p záporné.
Např.: strCatA( strCatA( „Dům a“, „n“, 5), „kraji silnice“, 100) “Dům na kraji silnice“
*
**Toto jsem tak zhruba psal a zajímalo by mne zdali jsem to pochopil správně a šlo by to tak použít, ale zpětně si myslím že asi ne no .. Prosím o pomoc. **
Co si myslím že se tam použije:
/* funkce připojení jednoho řetězce na konec druhého*/
strcat(char s2[], char s1[], int p)
{
int i, j;
i = j = 0;
while (s2[i] != '\0')
i++;
while ((s2[i++] = s1[j++]) != '\0')
;
/*ted return s1* /
}
copy(char s1[], char s2[])
{
int i;
i = 0;
while ((s1[i] = s2[i])!= '\0')
++i;
}
/*tímto bych kopíroval s2 do s1 ne ?*/
A pak asi něco budu ukládat do paměti a pak z ní něco brát ale v C jsme v začátcích a on s námi neprogramuje .. (učí na 2 věci.) Prosím pomozte.