Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zamiana liter z małych na wielkie i odwrotnie za pomocą ASCII

Ostatnio zmodyfikowano 2016-01-12 22:37
Autor Wiadomość
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?
C/C++
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;
P-141822
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.
P-141823
Matis28
Temat założony przez niniejszego użytkownika
» 2015-12-12 17:18:09
aaaaaa. Całkiem logiczne. Dzięki za pomoc :)
P-141824
zeniu
» 2016-01-12 22:14:26
w jaki sposób połączyć te dwie pętle w jedną?
pozdro
P-143411
mateczek
» 2016-01-12 22:37:22
C/C++
#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
C/C++
#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;
}
P-143413
« 1 »
  Strona 1 z 1