pole v c ++
pole v c ++
Nazdar poradi mi niekto ako vytvorit pole do ktoreho mam dat max 20 znakov , ktore potom budem prehladavat a mam najst samohlasky so zadaneho pola...a spocitat ich ... thx
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
Kód: Vybrať všetko
char pole[21];pole vytvoris: char pole[20] - teda pole s 20 znakmi typu char (pismenami)
Potom ho naplnis pismenami (to neviem ako chces)
Potom das zase cyklus for ktory prebehne 20 krat a vzdy skontrolujes if(pole=a) || (pole=e) atd... a vypises...
Teda neviem ako chces naplnit to pole
neutronmind: char pole[21] je pre 22 prvkov nie? Polia sa pocitaju od nuly a teda cislo 21 je 22. prvok. Alebo nie?
Potom ho naplnis pismenami (to neviem ako chces)
Potom das zase cyklus for ktory prebehne 20 krat a vzdy skontrolujes if(pole=a) || (pole=e) atd... a vypises...
Teda neviem ako chces naplnit to pole
neutronmind: char pole[21] je pre 22 prvkov nie? Polia sa pocitaju od nuly a teda cislo 21 je 22. prvok. Alebo nie?
-
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
No vyriesil som ti to takto:
Tie podmienky su trochu tazkopadne, pretoze ked som dal if(slovo=='a') || (slovo=='e') atd. napisalo mi chybu "Expected primary-expression befor '||' token"
Neviem co to znamena, prepacte
Budem rad ak mi to niekto napise.
Kazdopadne riesenie funguje spravne
Tie podmienky su trochu tazkopadne, pretoze ked som dal if(slovo=='a') || (slovo=='e') atd. napisalo mi chybu "Expected primary-expression befor '||' token"
Neviem co to znamena, prepacte
Kazdopadne riesenie funguje spravne
Kód: Vybrať všetko
char slovo[20];
cout << "Zadaj slovo (max 20 znakov):";
cin.getline(slovo, 20);
for(int i=0;i<20;i++)
{
if (slovo[i]=='a')
cout << "Samohlaska: " << slovo[i] << endl;
if (slovo[i]=='e')
cout << "Samohlaska: " << slovo[i] << endl;
if (slovo[i]=='i')
cout << "Samohlaska: " << slovo[i] << endl;
if (slovo[i]=='o')
cout << "Samohlaska: " << slovo[i] << endl;
if (slovo[i]=='u')
cout << "Samohlaska: " << slovo[i] << endl;
}
cin.get();a este by sa tam dala pridat podmienk, ze ak su tie samohlasky velke:
Kód: Vybrať všetko
if ((slovo[i]>=65)&&(slovo[i]<=90)) slovo[i]+=32;ReDo dakujem, ja som tam hadzal syntax z pascala
Tak som to zosumarizoval, ale picuque - tu tvoju vec som nepouzil, pretoze by sa bolo treba viac pohrat s podmienkami (pretoze cez moju podm. neprejde nic z tvojej) Musel by som to kontrolovat viacnasobne a to sa mi uz robit nechce
Vysledok pre lojza 
Tak som to zosumarizoval, ale picuque - tu tvoju vec som nepouzil, pretoze by sa bolo treba viac pohrat s podmienkami (pretoze cez moju podm. neprejde nic z tvojej) Musel by som to kontrolovat viacnasobne a to sa mi uz robit nechce
Kód: Vybrať všetko
char slovo[20];
cout << "Zadaj slovo (max 20 znakov): ";
cin.getline(slovo, 20);
for(int i=0;i<20;i++)
{
if ((slovo[i]=='a') || (slovo[i]=='e') || (slovo[i]=='i') || (slovo[i]=='o') || (slovo[i]=='u')
|| (slovo[i]=='A') || (slovo[i]=='E') || (slovo[i]=='I') || (slovo[i]=='O') || (slovo[i]=='U'))
{
cout << "Samohlaska: " << slovo[i] << endl;
}
}
cin.get();No myslim, zedacotaketo by fungovalo:
Ci toto si myslel tym pohranim sa s podmienkami? 
Kód: Vybrať všetko
if ((slovo[i]>=65)&&(slovo[i]<=90)) slovo[i]+=32;
if ((slovo[i]=='a') || (slovo[i]=='e') || (slovo[i]=='i') || (slovo[i]=='o') || (slovo[i]=='u'))
{
cout << "Samohlaska: " << slovo[i] << endl;
} -
neutronmind
Expert
- Príspevky: 189
- Registrovaný: 05 aug 2008, 14:17
Nezabudajte, ze toto zavisi od znakovej tabulky(ten kod je v poriadku pre ASCII). Cize:
Kód: Vybrať všetko
slovo = tolower(slovo);
if ((slovo[i]=='a') || (slovo[i]=='e') || (slovo[i]=='i') || (slovo[i]=='o') || (slovo[i]=='u')) {
cout << "Samohlaska: " << slovo[i] << endl;
}Tak to uz ti je lahke potom nie?
- mozes to osetrit podmienkami, aby to pisalo gramaticky spravne (2 samohlasky, 1 samohlasku atd.)
Kód: Vybrať všetko
for(int i=0;i<20;i++)
{
if ((slovo[i]>=65)&&(slovo[i]<=90)) slovo[i]+=32;
if ((slovo[i]=='a') || (slovo[i]=='e') || (slovo[i]=='i') || (slovo[i]=='o') || (slovo[i]=='u'))
{
samohl++;
}
}
cout << "Slovo obsahuje " << samohl << " samohlasok";Kód: Vybrať všetko
#include <iostream>
#include<math.h>
using namespace std;
int main (int argc, char *argv[])
{
char slovo[20];
cout << "Zadaj slovo (max 20 znakov):";
cin.getline(slovo, 20);
{
for(int i=0;i<20;i++)
{
if ((slovo[i]>=65)&&(slovo[i]<=90)) slovo[i]+=32;
if ((slovo[i]=='a') || (slovo[i]=='e') || (slovo[i]=='i') || (slovo[i]=='o') || (slovo[i]=='u'))
{
i++;
}
cout << "Slovo obsahuje " << i << " samohlasok";
{
cin.clear();
cin.sync();
cin.get();
return 0;
}
niekde je tam chyba neviete mi povedat co tam je zle?