Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C polia funkcie

Ahoj, chcel by som sa spytat ze ci sa neda porovnavat znak z polom nejako jednoduchsie cize nie cez for a porovnavat znak z kazdym miestom v poli postupne ale ci je na to aj nejaka funkcia.

Ked nieje ako mam spravit triedenie ked mam 2polia a vo fore ich porovnavam zo znakom ci tam patri. Neviem spravit ze ked tam nepatri ani do jednoho pola znak tak pojde do tretieho pola.

while((znak=getc(fr))!=EOF)
{
for(i=0;i<7;i++)
{
if(znak==samohlasky[i])
{
fprintf(fw1,"%c",znak);
break;
}

if(znak==spoluhlasky[i])
{
fprintf(fw2,"%c",znak);
break;
}
}
}

else tam dat nemozem lebo keby nahodou ten znak nebol rovny iba z miestom prvym z poli uz by isiel do else ale ja chcem najskor vyhodnotit vsetky miesta v poliach.

Předmět Autor Datum
potrebujes hlavickovy subor string.h a pouzit funkciu strncmp. http://www.wikihow.com/Compare-Two-St…
wam_Spider007 11.01.2014 09:26
wam_Spider007
to znamena ze musim tie chary dat najskor do pola ze?
Adam14 11.01.2014 09:29
Adam14
no string je vzdy pole charov, takze ano
wam_Spider007 11.01.2014 09:32
wam_Spider007
len teraz kukam na ten kod co si sem pastol a asi chces urobit nieco celkom ine, len nejak nechapem…
wam_Spider007 11.01.2014 09:36
wam_Spider007
No vlaste to je praca zo subormi mam subor do ktoreho dam hocijake znaky a v dvoch poliach mam defin…
Adam14 11.01.2014 09:44
Adam14
pridas si string.h do include a prerobis to nejak takto: int naslo; while((znak=getc(fr))!=EOF) { n…
wam_Spider007 11.01.2014 09:55
wam_Spider007
Dakujem rozmislal som nad takymto prepinacom ale nevedel som ako presne :) :D Asi sa nedokazem este…
Adam14 11.01.2014 09:58
Adam14
aby som to popisal ... mas 2 cykly. Jeden cez pole spoluhlasok a jeden cez pole samohlasok. Ked sa n…
wam_Spider007 11.01.2014 09:58
wam_Spider007
Druhá možnosť: Spravíš si pole char[256], v ktorom budeš mať na pozícii každého znaku uložené, či je… poslední
los 11.01.2014 10:48
los

No vlaste to je praca zo subormi mam subor do ktoreho dam hocijake znaky a v dvoch poliach mam definovane samohlasky a spoluhlasky pole ma velkost 7 lebo to iba skusam ja tam dalsie dam neskor :D postupujem postupne po subore a ked sa znak zo suboru rovna nejakemu znaku v poliach tak ich da do suborov samohlasky alebo spoluhlasky. Ale ked znak nepatri ani do jednoho chcem spravit subor ine a tam vsetky ostatne znaky dat no a tam je kamen urazu :)

pridas si string.h do include
a prerobis to nejak takto:

int naslo;

while((znak=getc(fr))!=EOF)
{
naslo = 0;
for(i=0;i<strlen(samohlasky);i++)
{
if(znak==samohlasky[i])
{
fprintf(fw1,"%c",znak);
naslo = 1
break;
}
}

if (naslo == 1) {
continue;
}

for(i=0;i<strlen(spoluhlasky);i++)
{
if(znak==spoluhlasky[i])
{
fprintf(fw2,"%c",znak);
naslo = 1;
break;
}

if (naslo == 1) {
continue;
}

fprintf(fw3, "%c", znak);

}

aby som to popisal ... mas 2 cykly. Jeden cez pole spoluhlasok a jeden cez pole samohlasok.
Ked sa najde v jednom poli, tak nastavi premennu naslo na 1 a vyskoci z cykluc for. Hned za tym je zistovanie, ci je premenna naslo rovna 1. ak ano ide prikaz continue, ktory prejde na dalsi znak zo suboru.
na konci je este fprintf(fw3, "%c", znak); co zapise znak do nejakeho tretieho suboru pokial nejde ani o samohlasku ani o spoluhlasku.

Druhá možnosť: Spravíš si pole char[256], v ktorom budeš mať na pozícii každého znaku uložené, či je to samohláska (=1) alebo spoluhláska (=2) alebo niečo iné (=0). To pole na začiatku vynuluješ a inicializuješ dvoma cyklami. Potom pri zisťovaní typu znaku už nebudeš potrebovať žiadne cykly, iba sa pozrieš na prislúchajúcu pozíciu znaku.

Zpět do poradny Odpovědět na původní otázku Nahoru