Zamiana dużych liter na małe[c++]
Ostatnio zmodyfikowano 2009-10-01 08:26
szkuner Temat założony przez niniejszego użytkownika |
Zamiana dużych liter na małe[c++] » 2009-09-29 23:46:20 Napisałem sobie programik który po wprowadzeniu ciągu liter ma zamieniać małe na duże a duże na małe i mam problem z wyswietlaniem tego cuda ponieważ wszystko wyświetla dalej jak było może mnie ktoś nakierować na dobrą droge #include <iostream> #include <cctype> using namespace std; char test; char temp, t1; int main() { cout << "Podaj jakis text (koniec nacisnij malpe"; cin.get( test ); while( test != '@' ) { if( isdigit( test ) ) { cout << "To nie jest litera sprobuj jeszcze raz\n"; break; } if( islower( test ) ) { toupper( test ); } else if( isupper( test ) ) { tolower( test ); } cout << test; cin.get( test ); } return 0; }
|
|
malan |
» 2009-09-30 00:14:23 Zamiast się męczyć z funkcjami napisał byś swoją. Zajęło by Ci to góra 5/10 minut. Podpowiedź |
|
szkuner Temat założony przez niniejszego użytkownika |
» 2009-09-30 00:18:46 Tylko tak chciałem wypróbować jak ta funkcja działa i co z nią można zdziałać ale spróbuje to zrobić właśnie na zakresach if zobaczymy co to bedzie z tego |
|
GoldWolf |
» 2009-09-30 09:48:40 Muszę zgodzić się z przedmówca, jeżeli dostępne rozwiązanie jest stabilne i można je spokojnie wykorzystać to po co tracić czas. Nie wiem w czym był problem z tym zadaniem: #include <iostream> #include <cctype> using namespace std; char test, t1; int main() { cout << "Podaj jakis text (koniec nacisnij spacje i malpe)\n"; cin.get( test ); while( test != '@' ) { if( isdigit( test ) ) { cout << "To nie jest litera sprobuj jeszcze raz\n"; break; } else if( test == '\n' ) { cin.get(); test = '\0'; t1 = '\0'; } if( islower( test ) ) { t1 = toupper( test ); } else if( isupper( test ) ) { t1 = tolower( test ); } cout << t1; cin.get( test ); } return 0; } Jedyny minus to po wyświetleniu rezultatu trzeba nacisnąć spację by ponownie wprowadzić nowy ciąg. |
|
szkuner Temat założony przez niniejszego użytkownika |
» 2009-09-30 12:59:42 No właśnie nie wiedziałem jak mam wyświetlic te dane bo nie wiedziałem że do jednej zmienej znakowej można przypisywać dwie rózne wartości Czyli jeżeli dobrze rozumuje zmiene znakowe rościagaja sie w miare co do nich wkładamy. Np
t1=tolower(); t1=toupper(); cout<<t1 A ja na początku myślałem ze jak tak przypisze to wtedy zmiena z tolower sie zamaże i bedzie wyswietlało tylko z toupper no ale człowiek poznaje coraz to ciekawawsze rzeczy |
|
GoldWolf |
» 2009-09-30 14:27:16 Bo nie można zapominasz, że to jest w pętli, czyli on de fakto przechowuje tylko jedną zmienną. Ale pętla leci tak szybko że tego nie widać i robi się to po kolei. Wykonaj taką sztuczkę: cout << t1; cin.get( test ); cout << "\n"; system( "pause" ); |
|
malan |
» 2009-09-30 23:31:22 malan, jak będziesz musiał zrobić coś innego (powiedzmy, że bawić się naprawdę dużymi liczbami). to też będziesz wolał "napisać własną funkcję", zamiast "męczyć się z istniejącą"? No bez przesady ;p. Miałem na myśli ten konkretny przykład. |
|
malan |
» 2009-10-01 21:37:42 Dobra wygrałeś - lepiej użyć istniejących funkcji. |
|
« 1 » 2 |