Mi lehet a hiba ebbe? C++
Vers-magánhangzó-számolás: : Kérjen be a program a felhasználótól egy tetszőleges versszakot (max. 8 sor), majd állapítsa meg, hány magánhangzóból , ezen belül hány magas hangrendű magánhangzóból áll a versszak. Írja ki darabszám szerint is őket!
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
const int sorszam = 1;
string maganhangzoSzamlalo(char c) {
string maganganzok = "aáeéiíoóöõuúüû";
for (int i = 0; i < 15; i++) {
if (c == maganganzok[i]) {
string magas = "iíeéöõüû";
for (int j = 0; j < 8; j++) {
if (c == magas[j]) {
return "magas";
}
}
return "mely";
}
}
return "msh";
}
int main(int argv, char* argc[]) {
string InputSor = "";
int magasMaganhangzokSzama = 0;
int melyMaganghangzokSzama = 0;
cout << "Kerlek add meg a verszakot soronkent:" << endl;
for (int i = 0; i < sorszam; i++) {
getline(cin, InputSor);
char sor[1024];
strcpy(sor, InputSor.c_str());
for (int j = 0; j < strlen(sor); j++) {
if (strcmp(maganhangzoSzamlalo(sor[j]), "magas") == 0) {
magasMaganhangzokSzama++;
}
else if (strcmp(maganhangzoSzamlalo(sor[j]), "mely") == 0) {
melyMaganghangzokSzama++;
}
}
}
cout << "Beolvasott magas maganhangzok szama: " << magasMaganhangzokSzama << endl;
cout << "Beolvasott mely maganhangzok szama: " << melyMaganghangzokSzama << endl;
return 0;
}
Ennél a sornál jelez hibát:
if (strcmp(maganhangzoSzamlalo(sor[j]), "magas") == 0)
és ennél:
else if (strcmp(maganhangzoSzamlalo(sor[j]), "mely") == 0)
Talán ha leírnád milyen hibát jelez, még csinálhatnánk is vele valamit.
(Bónusz: C++-ban ne használjunk strcmp-t és strcpy-t, helyette string::compare és string::copy, de ez most mellékes)
In function 'int main(int, char**)
|34|warning: comparison between signed and unsigned integer expressions|
|35|error: cannot convert 'std::string' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)'|
|38|error: cannot convert 'std::string' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)'|
||=== Build finished: 2 errors, 1 warnings ===|
Ezeket írja
# 4/4 Időpont ma 18:37
Használd a string::compare-t. Az strcmp const char*-t vár paraméternek, te meg string-et adsz neki.
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!