Viết chương trình nhập vào một ký tự in hoa, in ra ký tự thường tương ứng (ct c++ trong codeblocks)

2 câu trả lời

Vì trong bảng ASCII, ký tự in thường cách ký tự in hoa 32 vị trí (in thường>hoa).

#include<iostream>
using namespace std;
int main() {
    char c;
    cin>>c;
    c+=32;
    cout<<c;
}

Về bản chất ký tự cũng chỉ là một số nguyên, việc bạn chuyển 1 ký tự từ in thường sang in hoa thực chất là chuyển đổi từ 1 số nguyên sang 1 số nguyên khác. Như đã được học, để hiển thị giá trị nguyên (mã ASCII) của một ký tự bạn có thể làm như sau:

#include<iostream> using namespace std; int main() { cout << 'a' << " = " << (int)'a' << endl; cout << 'b' << " = " << (int)'b' << endl; cout << 'c' << " = " << (int)'c' << endl; cout << 'd' << " = " << (int)'d' << endl; cout << endl; cout << 'A' << " = " << (int)'A' << endl; cout << 'B' << " = " << (int)'B' << endl; cout << 'C' << " = " << (int)'C' << endl; cout << 'D' << " = " << (int)'D' << endl; return 0; }

Chương trình này sẽ hiển thị lên màn hình:

a = 97 b = 98 c = 99 d = 100 A = 65 B = 66 C = 67 D = 68

Có thể quan sát thấy giá trị của các ký tự in thường luôn bằng giá trị của các ký tự in hoa cộng với 32. Từ đó bạn có thể chuyển 1 ký tự từ in thường sang in hoa bằng cách trừ đi 32. Ví dụ chương trình:

#include<iostream> using namespace std; int main() { char c = 'd' - 32; cout << c; return 0; }

Sẽ hiển thị ra màn hình

D

Câu hỏi trong lớp Xem thêm