Introduction to C++ Programming: Fun Explanation of Problem 1021 – Print Character

Problem Description: Input an integer, which is the ASCII code of a character, ensuring that a corresponding visible character exists. Output the corresponding character.

Input: An integer between 32 and 126 (the range of visible character ASCII codes)

Output: The character corresponding to the ASCII code

Example:

Input: 65

Output: A

Input: 97

Output: a

Input: 48

Output: 0

Input: 33

Output: !

Core Concept Understanding: Reverse lookup of ASCII codes

Metaphor: Finding a person by their ID number

If problem 1020 is compared to:

· Known name, find ID number (character → ASCII code)

Then problem 1021 is:

· Known ID number, find person (ASCII code → character)

Reverse thinking

Problem Known Find Metaphor

1020 Character ASCII code Find person by ID

1021 ASCII code Character Find person by ID

Solution Method Detailed Explanation

Method 1: Direct Type Conversion

#include <iostream>
using namespace std;
int main() {
    int ascii_code;     // Define an integer variable to store the ASCII code
    cin >> ascii_code;  // Read the ASCII code number
    
    char c = (char)ascii_code;  // Key: Convert integer to character
    
    cout << c << endl;
    return 0;
}

Why is this effective?

· The computer knows what character corresponds to each number

· Using (char) conversion tells the computer: “Display this number as a character”

Method 2: A Simpler Approach

#include <iostream>
using namespace std;
int main() {
    int code;
    cin >> code;
    cout << (char)code << endl;  // Directly convert and output
    return 0;
}

In-depth Understanding: Testing Various ASCII Codes

Let’s write a test program to verify:

#include <iostream>
using namespace std;
int main() {
    // Test various ASCII codes corresponding to characters
    int code1 = 65;  // A
    int code2 = 97;  // a
    int code3 = 48;  // 0
    int code4 = 57;  // 9
    int code5 = 33;  // !
    
    cout << "ASCII Code\tCorresponding Character" << endl;
    cout << "--------------" << endl;
    cout << code1 << "\t" << (char)code1 << endl;
    cout << code2 << "\t" << (char)code2 << endl;
    cout << code3 << "\t" << (char)code3 << endl;
    cout << code4 << "\t" << (char)code4 << endl;
    cout << code5 << "\t" << (char)code5 << endl;
    
    return 0;
}

Expected Output:

ASCII Code Corresponding Character

————–

65 A

97 a

48 0

57 9

33 !

Important ASCII Code Range

Visible Character Range

· 32-126: All visible characters (letters, numbers, punctuation)

· The problem guarantees that the input is within this range

Key Boundary Points

#include <iostream>
using namespace std;
int main() {
    cout << "Numeric Character Range:" << endl;
    cout << "48: " << (char)48 << " (Number 0 starts)" << endl;
    cout << "57: " << (char)57 << " (Number 9 ends)" << endl;
    
    cout << "Uppercase Letter Range:" << endl;
    cout << "65: " << (char)65 << " (Uppercase A starts)" << endl;
    cout << "90: " << (char)90 << " (Uppercase Z ends)" << endl;
    
    cout << "Lowercase Letter Range:" << endl;
    cout << "97: " << (char)97 << " (Lowercase a starts)" << endl;
    cout << "122: " << (char)122 << " (Lowercase z ends)" << endl;
    
    return 0;
}

Complete Solution Code

#include <iostream>
using namespace std;
int main() {
    int code;
    cin >> code;           // Read the ASCII code number
    
    cout << (char)code << endl; // Output the corresponding character
    
    return 0;
}

Common Questions and Answers

Question 1: What happens if the input is not in the range of 32-126?

The problem guarantees that the input is within the range of visible characters, so there will be no invisible characters.

Question 2: Why does the number 65 output ‘A’ instead of 65?

· (char)65 tells the computer: “Treat 65 as a character”

· The computer looks up the table and finds that 65 corresponds to the character ‘A’, so it outputs ‘A’

Question 3: Can multiple numbers be input?

cin >> code will only read the first integer, and the subsequent content will remain in the input buffer.

Comparison Summary of 1020 vs 1021

Aspect 1020 Problem 1021 Problem

Input Character Number

Output Number Character

Core Operation (int) Character (char) Number

Metaphor Find person by ID Find person by ID number

Memory Techniques

1. Number to character: add (char) in front

2. Character to number: add (int) in front

3. Key numbers: Remember 65=’A’, 97=’a’, 48=’0′

Conclusion

This problem pairs perfectly with problem 1020, allowing us to master:

· Bidirectional conversion: Character ⇄ ASCII code

· Type conversion: Usage of (char) and (int)

· Internal representation in computers: Understanding how characters are stored in computers

By mastering these two problems, you will truly understand the relationship between characters and numbers in computers.

Leave a Comment