C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
ta prva je vpohode to sme chceli na zaciatok. to druhe cudo zmaz.
teraz skus napisat druhu funkciu PosunPrvkyPola. Navratovy typ void, prvy parameter pole bajtov, druhy parameter integer "prvokOd", treti integer "posun".
prvokOd - index prvku od ktorehu sa zvysne prvky posunu
posun - pocet pozicii o kolko sa prvky posunu, moze byt minus.
Funkcia bude mat zase jeden cyklus, kt pri posun>0 pojde od posledneho prvku do prvokOd a postupne ich bude posuvat o posun doprava. Ak <0 tak naopak pojde od prvokOd do konca a posuvat o minusovy posun cize dolava.
Treba si dat pozor ze v isty cas moze pole vyzadovqt viac ako 500 prvkov, naprv ked bude prva operacia zvacsenie o 3. Cize asi nejaka rezerva treba ale to by malo byt v zadani
Potom ked budes tu funkciu mat napis.
Ked budes v stringu nahradzat bodku za 3 dolare, funkciu zavolas ako PosunPrvkyPola(n,i,2). Ked budes mazat, zavolas (n,i,-1)
teraz skus napisat druhu funkciu PosunPrvkyPola. Navratovy typ void, prvy parameter pole bajtov, druhy parameter integer "prvokOd", treti integer "posun".
prvokOd - index prvku od ktorehu sa zvysne prvky posunu
posun - pocet pozicii o kolko sa prvky posunu, moze byt minus.
Funkcia bude mat zase jeden cyklus, kt pri posun>0 pojde od posledneho prvku do prvokOd a postupne ich bude posuvat o posun doprava. Ak <0 tak naopak pojde od prvokOd do konca a posuvat o minusovy posun cize dolava.
Treba si dat pozor ze v isty cas moze pole vyzadovqt viac ako 500 prvkov, naprv ked bude prva operacia zvacsenie o 3. Cize asi nejaka rezerva treba ale to by malo byt v zadani
Potom ked budes tu funkciu mat napis.
Ked budes v stringu nahradzat bodku za 3 dolare, funkciu zavolas ako PosunPrvkyPola(n,i,2). Ked budes mazat, zavolas (n,i,-1)
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
To je dobrý napad lenže to musím spravit v ramci tej funkcii nie zavolať dalšiu
preto je to problém
to druhé som vyriešil potrebujem len poradit ako vypisat tie 3 doláre
lebo ten char dokaže vypisat iba jeden $ neviem ako aby vypisal $$$
preto je to problém
to druhé som vyriešil potrebujem len poradit ako vypisat tie 3 doláre
lebo ten char dokaže vypisat iba jeden $ neviem ako aby vypisal $$$
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
nevidim v tom problem si napisat dalsou vlastnu funkciu a zavolat ju. ved to je len semantika, kludne tam ten druhy cyklus mozes pastnut rovno. asi tym mysleli aby si nevolal tie str* funkcie, lebo tymi by to slo spravit jednoducho.
proste potrwbujes na to 2 cykly
proste potrwbujes na to 2 cykly
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
to srt* mozem pouzit
mam dovolenu kniznicu <string.h>
mam dovolenu kniznicu <string.h>
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
aha, tak potom by to teoreticky mohlo ist cez strcpy
nieco v zmysle strcpy(n+i, n+i+2). tym ten string posunies o 2 pozicie a tym padom si vytvoris miesto na tie 3 dolare, co budu na poziciach n+i,n+i+1,n+i+2 . rovnako aj pri mazani znaku spravis zase strcpy(n+i,n+i-1). neviem ale nakolko je ta funkcia imunna voci tomu, aby si neprepisovala ten string pod nohami
nieco v zmysle strcpy(n+i, n+i+2). tym ten string posunies o 2 pozicie a tym padom si vytvoris miesto na tie 3 dolare, co budu na poziciach n+i,n+i+1,n+i+2 . rovnako aj pri mazani znaku spravis zase strcpy(n+i,n+i-1). neviem ale nakolko je ta funkcia imunna voci tomu, aby si neprepisovala ten string pod nohami
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
neskopiruje to ako nove pole to strcpy ?
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
ee, pole je stale len jedno. do tej funkcie len posuvas rozne ukazovatele na prvky toho pola
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
ako to mam teda zapisat v tom kode lebo neviem, ako to myslis kde to tam dat, do toho if ?
Autoeditácia príspevku po 2 min 38 sek:
Autoeditácia príspevku po 2 min 38 sek:
Kód: Vybrať všetko
if(n[i] == '.'){
n[i] = '$$$';
a sem to strcpy ??
}
[\code]-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: C programovanie: pomoc s funkciou ktora nahradi cast retazca v poli
priklad napr takto
este musis vymyslet, ako to zakomponovat do tvojho kodu
Kód: Vybrať všetko
#include <stdio.h>
#include <string.h>
int main()
{
char snura[500];
strcpy(snura, "spotenegule.sk123456");
strcpy(snura+12+2, snura+12);
snura[11] = '$';
snura[12] = '$';
snura[13] = '$';
printf(snura); //vypise spotenegule$$$sk123456
return 0;
}