C++. Sziasztok. Írtam egy programot, de nem tökéletes. Kérem valaki segítsen?
"Egy olyan program kell ami megszámolja, hogy egy karakterláncban an angol ábécé egy adott betűje hányszor szerepel. A program kérje be a karakterláncot és a keresendő betűt. Keresendő betűként csak az angol ábécé betűit fogadja el."
Minden megvan azon kívül, hogy a keresendő betűt nem tudom ellenőrzötten bevinni. :( probálkoztam, itt lentebb de nem csinálja.
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
int j, i, karakter;
char sor[100], bet, betu;
char magyar[10]={'á','é','í','ó','ö','ő','ú','ü','ű'};
cout<<"adja meg a sort"<<endl;
cin.getline(sor,100);
karakter=0;
cout<<"adja meg a keresett betut"<<endl;
vissza:
cin>>betu;
for(i=0; i<strlen(magyar); i++)
{
if(betu==magyar[i])
{
cout<<"A megadott betu nem az angol abc resze!\n Adj meg masikat!"<<endl;
goto vissza;
}
}
for(j=0; j<strlen(sor); j++)
{
if(sor[j]==betu) karakter++;
bet=toupper(sor[j]);
cout<<bet;
}
cout<<endl;
cout<<"A megadott beuk szama: "<<karakter<<endl;
system("pause");
return 0;
}
Előre is köszönöm!
Hát ez így nem fog menni. Eleve az egész semmit nem ér, ha én mondjuk ß-t írok.
A char változó egy szám, lényegében az adott karakter számkódja van benne. Ezért pl. a+b értemes bizonyos értelemben.
Az angol ábécé betüi egymás mellett vannak. Tehát elég megnézned, hogy a beadott nagyobb egyenlő 'a'-nál és kisebb egyenlő 'z'-nél.
Legalábbis ez C-ben így van, C++-ban nem próbáltam ilyet, de nagyon meglepne, ha ez megváltozott volna.
(Legközelebb légyszives pästebin-re feltölteni a kódod, mert sokkal könnyebben olvasható, gyorsabban és kevesebb fáradsággal tudok (tudunk) válaszolni. Köszi!)
A probléma abból ered, hogy a char 256 'helyes', ebbe viszont nem fér bele a magyar ABC.
Ezt te is kipróbálhatod, a következő paranccsal:
printf("%d %d\n",'a', 'á'); ///'á'=50081
Ezért soha nem lesz egyenlő, viszont valami csonk lesz a képernyőn.
Próbálhatod utf_8 -ként tárolni a karaktereidet, de sokkal egyszerűbb az első válaszadó módszerével.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!