-
Üdv. A kérdés adott:
Mi a legegyszerûbb megoldás arra, hogy lekérjem egy mondatban a magánhangzók számát?
Bonyolult megoldásokat én is találtam már rá, de biztos van egyszerûbb mód is rá mint amit én kigondoltam.
Válaszokat elõre is köszönöm.
-
new MaganHangzok[][] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
for(new i=0; i != sizeof(MaganHangzok[]); i++)
{
if(strfind(str, MaganHangzok, true) != -1)
{
printf(\"Talált magánhangzó: %s\",MaganHangzok);
}
}
}
Nem teszteltem, de ebbõl szerintem el tudsz indulni.
-
new MaganHangzok[][] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
for(new i=0; i != sizeof(MaganHangzok[]); i++)
{
if(strfind(str, MaganHangzok, true) != -1)
{
printf(\"Talált magánhangzó: %s\",MaganHangzok);
}
}
}
Nem teszteltem, de ebbõl szerintem el tudsz indulni.
Õõõ ez már ránézésre se jó, mert ez csak azt ellenõrzi, hogy az adott mondatban van-e magánhangzó, és ha van, kiírja az elsõt amit talált.
Nekem az kéne, hogy hány darab magánhangzó van az adott mondatban.
-
Nem, nem csak az elsõt írja ki, hanem sorba az összeset.
Ez viszont kiírja darabszámban:
new MaganHangzok[][] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
new szama;
for(new i=0; i != sizeof(MaganHangzok[]); i++)
{
if(strfind(str, MaganHangzok, true) != -1)
{
szama++;
}
}
return szama;
}
-
Nem, nem csak az elsõt írja ki, hanem sorba az összeset.
Ez viszont kiírja darabszámban:
new MaganHangzok[][] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
new szama;
for(new i=0; i != sizeof(MaganHangzok[]); i++)
{
if(strfind(str, MaganHangzok, true) != -1)
{
szama++;
}
}
return szama;
}
Nem, ez sem jó.
-
new MaganHangzok[] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
new szama;
for(new x = 0; x < strlen(str); x++)
{
for(new i = 0; i < sizeof(MaganHangzok); i++)
{
if(str
{
szama++;
}
}
}
printf(\"Szöveg: %s | Magánhangzók: %d\", str, szama);
return szama;
}
Teszteltem, nekem mûködött:
[16:47:40] Szöveg: Teszt szöveg | Magánhangzók: 3
[16:47:40] Szöveg: Második teszt szöveg | Magánhangzók: 6
[mod]Javítottam helyetted a
taget
tagre![/mod]
-
new MaganHangzok[] = {\"a\", \"á\", \"e\", \"é\", \"i\", \"í\", \"o\", \"ó\", \"ö\", \"õ\", \"u\", \"ú\", \"ü\", \"û\"};
stock Maganhangzok(str[])
{
new szama;
for(new x = 0; x < strlen(str); x++)
{
for(new i = 0; i < sizeof(MaganHangzok); i++)
{
if(str
{
szama++;
}
}
}
printf(\"Szöveg: %s | Magánhangzók: %d\", str, szama);
return szama;
}
Teszteltem, nekem mûködött:
[16:47:40] Szöveg: Teszt szöveg | Magánhangzók: 3
[16:47:40] Szöveg: Második teszt szöveg | Magánhangzók: 6
[mod]Javítottam helyetted a
taget
tagre![/mod]
Igen, most hogy áttettem PUBLIC-ba, így már jó, STOCKként nem, mert az olyan mintha oda írnám be a cuccot ahol szeretném lekérni a mh-k számát, és ez nem túl elõnyös..
-
Mármint erre gondolsz?
format(valami, méret, \"%s\", Maganhangzok(valami));
Ennek annyi a megoldása, hogy magát a return részt a stockból kiveszed.
[mod]Kitettem helyetted a
taget![/mod]