Kezdőoldal » Számítástechnika » Programozás » Mi lehet a hiba ebbe? C++

Mi lehet a hiba ebbe? C++

Figyelt kérdés

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)


2015. dec. 2. 11:22
 1/6 anonim ***** válasza:
Az ékezetes magánhangzók két karakternek számíthaznak a kódolástól függően. Ekezetek nelkul viszont nem lehet megallapitani, hogy mi magas, és mi mély.
2015. dec. 2. 11:38
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Akkor most mi a teendő?
2015. dec. 2. 11:50
 3/6 anonim ***** válasza:

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)

2015. dec. 2. 15:32
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

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

2015. dec. 2. 18:37
 5/6 anonim ***** válasza:

# 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.


[link]

2015. dec. 2. 18:43
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszi a válaszokat!
2015. dec. 2. 22:51

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!