Problem ze zmiennymi(?)
Ostatnio zmodyfikowano 2008-08-20 15:40
emu23 Temat założony przez niniejszego użytkownika |
Problem ze zmiennymi(?) » 2008-08-20 13:41:50 Witam, od jakiegoś czasu uczę się cpp, mam już jakie takie podstawy i chciałem napisać program. ma to być "słownik" do pewnej gry. Napisałem: int main() { string tekst; string literka; cout << "Podaj tekst: "; cin >> tekst; cout << "Wprowadziles: \"" << tekst << "\"" << endl; for( int i = 0; i < sizeof( tekst ); ++i ) { literka = tekst[ i ]; literka = zamiana( literka ); cout << literka; } getch(); return 0; } I stworzyłem funkcję zamiana string zamiana( string literka ) { switch( literka ) { case "a"; literka = "a" ); break; case "b" ' literka = "bey" ); break; case "c": literka = "set" ); break;
to nie cała funkcja nie wklejałem całej bo jest dość długa ;p Próbuję kompilować i wyskakuje mnóstwo błędów ( nie wątpię że takowe istnieją więc proszę o poprawienie kodu ) |
|
DeBugger |
» 2008-08-20 13:45:34 Includuj iostream i spróbuj wsadzić tam przestrzenie nazw. include < iostream > using namespace std; int main() { }
a zamiast string to: std::string |
|
emu23 Temat założony przez niniejszego użytkownika |
» 2008-08-20 14:01:38 Chyba cie do końca nie zrozumiałem ;p co to znaczy wsadzić przestrzenie nazw? A sam kod teraz wygląda tak: #include <iostream> #include <conio.h> using namespace std;
std::string zamiana( string literka ) { switch( literka ) { case "a"; literka = "a" ); break; case "b"; literka = "bey" ); break; case "c"; literka = "set" ); break; default; literka = literka; break; } return literka; }
int main() { string tekst; string literka; cout << "Podaj tekst: "; cin >> tekst; cout << "Wprowadziles: \"" << tekst << "\"" << endl; for( int i = 0; i < sizeof( tekst ); ++i ) { literka = tekst[ i ]; literka = zamiana( literka ); cout << literka; } getch(); return 0; } Oczywiście wyciąłem z funkcji część słownika ale wygląda tak samo jak to co jest. |
|
DejaVu |
» 2008-08-20 14:20:21 Funkcja switch... może przyjmować tylko liczby całkowite jako parametr wejściowy. Ty próbujesz wykonywać switch...case po tekście (zmienna string) - co jest niedozwolone i stąd masz błędy. |
|
emu23 Temat założony przez niniejszego użytkownika |
» 2008-08-20 14:32:29 Zamieniłem na #include <iostream> #include <conio.h> using namespace std;
std::string zamiana( string literka ) { if( literka = "a" ); literka = "a"; if( literka = "b" ); literka = "bey" ); if( literka = "c" ); literka = "set"; (...) if( literka = "z" ); literka = "zh"; } return literka; }
int main() { string tekst; string literka;
cout << "Podaj tekst: "; cin >> tekst; cout << "Wprowadziles: \"" << tekst << "\"" << endl;
for( int i = 0; i < sizeof( tekst ); ++i ) { literka = tekst[ i ]; literka = zamiana( literka ); cout << literka; }
getch();
return 0; } ale teraz przy każdym Ifie kompilator (Dev-C++)pokazuje błąd: In function `std::string zamiana(std::string)': 7 could not convert `(&literka)->std::basic_string<_CharT, _Traits, _Alloc>::operator= [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((const char*)"a"))' to `bool' |
|
DejaVu |
» 2008-08-20 15:24:27 Rozwiązanie: #include <iostream> #include <conio.h> using namespace std;
std::string zamiana( string literka ) { if( literka == "a" ) literka = "a"; if( literka == "b" ) literka = "bey"; if( literka == "c" ) literka = "set"; if( literka == "z" ) literka = "zh"; return literka; }
int main() { string tekst; string literka; cout << "Podaj tekst: "; cin >> tekst; cout << "Wprowadziles: \"" << tekst << "\"" << endl; for( int i = 0; i < sizeof( tekst ); ++i ) { literka = tekst[ i ]; literka = zamiana( literka ); cout << literka; } getch(); return 0; }
|
|
emu23 Temat założony przez niniejszego użytkownika |
» 2008-08-20 15:40:03 Działa, wielkie dzięki. |
|
« 1 » |