

Pomoc s programem v C
Ahoj,
potreboval bych poradit s jednim programem v C (všepřes komand lajnu).
1/Zadam nejaky text a ENTER
2/Program se zeptá na cele čislo od 1 do 9
3/Program najde shodne znaky nebo skupiny znaku, ktere se opakuji a nahradi je jednim a před ten znak vloží číslo,kolikrat jich nahradil
4/Vytiskne na obrazovku vysledek
Př.
Vstup: blblbl blabla pro hodnotu 2
Výstup: 2bl blabla
Vstup: blblbl blabla pro hodnotu 3
Výstup: blblbl 1bla
atd...
Vstup: blblbl blabla pro hodnotu 2
Výstup: 2bl blabla
POPŘ.
Vynechat Bod 2 a konttrolovalo by mi to bloky třeba do po sobe 9 jdoucich znacich
Vstup: blblbl blabla pro hodnotu 2
Výstup: 2bl 1bla
atd...
Moje řešení bohužel moc nefunguje, snažil jsem se na něco přijit zknihy Programovací jazyk C, ale nahrazuje mito jen stejne sznakyposobe jednim např(vstup aaa vystup a)
Mnohokrát děkuji
Budeš mať 2 smerníky - jeden do vstupného reťazca a druhý do výstupného reťazca. Najprv skontroluješ, či sú na vstupe opakujúce sa skupiny znakov. Ak áno, tak si zvýšiš interné počítadlo a posunieš sa na vstupe o tú skupinu znakov ďalej. Ak nie, tak prekopíruješ znak zo vstupu na výstup a posunieš oba smerníky o jeden znak ďalej. Predtým ale nezabudneš vypísať počet v internom počítadle (a vynulovať ho), ak je nenulové.
Mockrát díky
, ještě si to předělám, abychto mohl spouštět pomocíparametrů přes command lajnu.
Mohl bysmiještě poradit nebo aspoň naznačit, jak udělat reverzní program, po zadání té délky skupiny znaků např. "2", aby to zase z textu např "4au" udělalo zpět "auauauauau" ? Díky moc
Nie je ošetrené pretečenie pri zapisovaní do výstupného reťazca:
Díky, mohl by jsi mi ještě pomoci, s těmi parametry... ted s tim zapasim....
Takhle byto vypadalo
program.exe 1 bbbbblll
parametr 1 by byl jako (cislo 1-9)
parametr bbbbblll by byl ten řetězec
A čo konkrétne ti nejde s parametrami? Test, či argc == 2 alebo nepoznáš funkciu atoi?
No, já si myslel, že to napíšu nejak takto :
Což mi bohužel nenačte, přitom, když si vytisknu promennou n, tak mihodnota sedi, co sem zadal pres parametr a k nacitani retezce pres parametr jsem se vubec nedostal (omlouvam se, ale s C teprve zacinam)
je hovadina. Kto za teba ma previest string na integer? pouzi atoi.
Nesedi. Skus pochopit rozdiel medzi znakom (stringu) a cislom. Na to je dobre vediet co to je ASCII tabulka, www.google.com. Aby si vedel ze znak "1" nema hodnotu 1, ale 49.
A ked chces nejaku radu tak sem musis skopirovat kompletny program a napisat co to robi zle.
Vycházím z toho (spuštěno s parametry: 3 blablabla):
Ale chci vkládat řetězec parametrem, tak udělám toto (tučné řádky změněny a opět spuštěno s parametry 3 blablabla):
a na vástupu mi vyjde "h (" místo "2bla"
na vystupu vyjede h ked ten program spustis s jakymi parametrami? (opis sem presne do bodky commadline jake parametre tam davas. Oddelil si tie 2 parametre medzerou? T.j.
program.exe cislo medzera string ?)
Inac problem tam mas ten, ze
in = input
je pred
input = argv[2];
co je samozrejme zle, in=input musi byt az potom.
P.S. resp. v tvojom pripade uz nepotrebujes premennu input vobec.
Díky moc, opravdu je to tímto:
Jestli bych mohl poprosit ještě o jednu věc, potřeboval bych poradit jak (okomentovat), jednotlivé řádky programu, nemyslím to, jak se dělají komentáře, ale obsah koméntáře, aby to bylo srozumitelné i pro neznalé programování? Prože absolutne nevim, jak nejake veci popsat, aby to otec, který se chce učit programovat pochopil...
to si nemal celu definiciu *in a *out dat za to, len priradenie in=input. idealne ked premennu input uplne vyhodis, je pouzita predsa len raz a to zmenis na in. To co mas neni konformne s ANSI C.
A mas tam dat aj kontrolu na pocet parametrov.
Pri vystupe by sa hodila aj kontrola na MAX, ale to sa mi robit nechce.
Kometnar moze robit len ten kto ten program chape. A potom nema problem urobit komentar. Takze si spusti google.com a pochop co robi kazdy riadok a potom mozes okomentovat kazdy riadok.
P.S. komentar by mal obsahovat len to co NENI v kode. T.j. ak mam kod in=argv[2] tak je hovadina pisat komentar "priradime argv[2] do in" ptz to predsa kazdy vidi z kodu, ale komentar na tomto mieste moze obsahovat ze preco potrebujem vobec nejake in, t.j. napr. komentar by tam bol "priprava startovacieho pointra pre hladanie zhody stringov" apod. Ako pisem musis to najprv CHAPAT ze preco tam je kazdy riadok a preco by to neslo bez neho.
Díky všem zučastněnym za pomoc, považujte to tedy za vyřešené, dík moc