Zamiana liter z małych na wielkie i odwrotnie za pomocą ASCII
Ostatnio zmodyfikowano 2016-01-12 22:37
Matis28 Temat założony przez niniejszego użytkownika |
Zamiana liter z małych na wielkie i odwrotnie za pomocą ASCII » 2015-12-12 16:18:28 Cześć. Znowu mam problem. Chciałem napisać program który w podanym wyrazie zamieni małe litery na wielkie i wielkie na małe ale obecnie zamienia wszystkie znaki na wielkie litery.Z czego to wynika? char tab[ 100 ]; cout << "Podaj napis: "; cin >> tab; char zmiana; for( int i = 0; i <= 99; i++ ) { if(( int ) tab[ i ] >= 65 &&( int ) tab[ i ] <= 90 ) { zmiana =( int ) tab[ i ] + 32; tab[ i ] = zmiana; } else continue; } for( int j = 0; j <= 99; j++ ) { if(( int ) tab[ j ] >= 97 &&( int ) tab[ j ] <= 122 ) { zmiana =( int ) tab[ j ] - 32; tab[ j ] = zmiana; } else continue; } cout << tab << endl; |
|
carlosmay |
» 2015-12-12 16:51:33 Bo zamianę musisz zrobić w jednej pętli. Pierwsza pętla zamienia duże na małe i po tej operacji są wszystkie małe. W drugiej pętli wszystkie są małe więc zamienia wszystkie na duże. |
|
Matis28 Temat założony przez niniejszego użytkownika |
» 2015-12-12 17:18:09 aaaaaa. Całkiem logiczne. Dzięki za pomoc :) |
|
zeniu |
» 2016-01-12 22:14:26 w jaki sposób połączyć te dwie pętle w jedną? pozdro |
|
mateczek |
» 2016-01-12 22:37:22 #include <iostream> #include<string> using namespace std;
int main() { string imie = "ALicja"; for( char & znak: imie ) { if( znak >= 'A' && znak <= 'Z' ) { znak += 32; continue; } if( znak >= 'a' && znak <= 'z' ) { znak -= 32; continue; } } cout << imie << endl; } trochę na skróty #include <iostream> #include<string> using namespace std;
int main() { string imie = "ALiCja"; for( char & znak: imie ) if( znak >= 'a' ) znak -= 32; else znak += 32; cout << imie << endl; } |
|
« 1 » |