Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C - retazce funkcie

Ahoj mam v retazci lubovolne znaky ktore chcem vytriedit na samohlasky pomocou nejakej funkcie a vypisat ich do noveho pola. Poznate taku funkciu ak ano prosim napiste a aj ake parametre ma mat dakujem

Předmět Autor Datum
A máš vypsat všechny samohlásky, které najdeš (mohou se opakovat), nebo jen jejich první výskyt?
Niko Bellic 08.03.2014 10:51
Niko Bellic
maju sa opakovat nemoze to byt nieco na sposob tohto?? Ale nieco tam je zle nasiel=strpbrk(znaky,hl…
Hilfiger 08.03.2014 10:56
Hilfiger
Funkce strpbrk() vrací pointer na první výskyt znaku, ne přímo ten znak. Takže to chtělo trochu upra…
Niko Bellic 08.03.2014 11:11
Niko Bellic
Super dakujem moc :)
Hilfiger 08.03.2014 11:28
Hilfiger
Este som sa chcel spytat ked nechcem aby mi nepretieklo pole teda neviem kolko znakov v tom subore b…
Hilfiger 08.03.2014 11:49
Hilfiger
Tak v tomto pripade si mozes naalaokovat aj len hned na zaciatku nove pole velkosti toho povodneho (… poslední
MM.. 10.03.2014 10:13
MM..

Funkce strpbrk() vrací pointer na první výskyt znaku, ne přímo ten znak. Takže to chtělo trochu upravit:

char znaky[] = "Nejaky testovany text I S VELKYMI PISMENY";
char hladaneZnaky[10] = "aeiouAEIOU";
char samohlasky[30];
char *nasiel;
int i = 0;

nasiel=strpbrk(znaky,hladaneZnaky);
while(nasiel!=NULL)
{
	samohlasky[i++]=*nasiel;
	nasiel=strpbrk(nasiel+1,hladaneZnaky);
}
samohlasky[i] = '\0'; // konec retezce
printf("samohlasky : %s\n",samohlasky);

Este som sa chcel spytat ked nechcem aby mi nepretieklo pole teda neviem kolko znakov v tom subore bude tak by som tam mal dat toto nie?? Lebo aj ked to tam nedam mi pole nepretecie :D. Potom tento priklad je uz o cislach nie samohlaskach

nasiel=strpbrk(znaky,hladaneZnaky);
while(nasiel!=NULL)
{
cifry[i++]=*nasiel;
nasiel=strpbrk(++nasiel,hladaneZnaky);

if(i%POCET==POCET-1)
{
kolkoKratAlokoval++;
cifry=(char *)realloc(cifry,POCET*kolkoKratAlokoval*sizeof(cha r));
}
}
cifry[i]='\0';
printf("%s\n",cifry);

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