Convert Integer to Char

Convert Integer to Char in C++ (5 Programs)

BeginnerTopic: String Conversion Programs
Back

C++ Convert Integer to Char Program

This program helps you to learn the fundamental structure and syntax of C++ programming.

Try This Code
#include <iostream>
using namespace std;

int main() {
    int num = 65;
    
    // Method 1: Direct casting
    char ch1 = (char)num;
    
    // Method 2: Using static_cast
    char ch2 = static_cast<char>(num);
    
    cout << "Integer: " << num << endl;
    cout << "Character (method 1): " << ch1 << endl;
    cout << "Character (method 2): " << ch2 << endl;
    
    return 0;
}
Output
Integer: 65
Character (method 1): A
Character (method 2): A

Understanding Convert Integer to Char

This program teaches you how to convert an integer to a character in C++. This conversion is based on the ASCII (American Standard Code for Information Interchange) system, where each character has a corresponding numeric value. Understanding this conversion is crucial for working with characters, text processing, and understanding how computers represent characters internally.

---

1. What This Program Does

The program converts an integer (like 65) into its corresponding character (like 'A') based on the ASCII value. In the ASCII system, each character has a unique number:

65 represents 'A'
66 represents 'B'
97 represents 'a'
48 represents '0'

This conversion is essential when you need to display characters based on numeric values or work with character encoding.

---

2. Header File Used

This header provides:

cout for displaying output
cin for taking input (not used in this example, but available)

---

#include <iostream>

3. Declaring Variables

The program declares:

int num = 65;

int is the data type for storing whole numbers.
num stores the integer value 65, which corresponds to the character 'A' in ASCII.

---

4. Method 1: Direct Casting (C-style)

char ch1 = (char)num;

This method uses C-style casting:

(char) is the cast operator that converts the integer to a character.
The integer value is interpreted as an ASCII code.
So 65 becomes the character 'A'.

This is the simplest and most direct method, but it's considered less safe in modern C++ because it doesn't perform type checking.

Example:

num = 65 → ch1 = 'A'
num = 66 → ch1 = 'B'
num = 97 → ch1 = 'a'

---

5. Method 2: Using static_cast (C++ style)

char ch2 = static_cast<char>(num);

This method uses C++ style casting:

static_cast is a safer, more explicit way to convert types.
It performs compile-time type checking.
It's the recommended method in modern C++.

static_cast<char>(65) converts the integer 65 to the character 'A'.

This method is preferred over C-style casting because:

It's more readable
The compiler can catch type errors
It clearly shows the intent to convert types

---

6. Other Methods (Mentioned but not shown in code)

The program description mentions three additional methods:

Method 3: Using ASCII values directly

char ch3 = 65; // Direct assignment

This works because characters are stored as integers internally.

Method 4: Using char arithmetic

char ch4 = 'A' + (num - 65);

This calculates the character by adding an offset to a base character.

Method 5: Using sprintf

char buffer[2];

sprintf(buffer, "%c", num);

char ch5 = buffer[0];

This uses the C function sprintf to format the integer as a character.

---

7. Understanding ASCII Values

ASCII (American Standard Code for Information Interchange) is a character encoding standard:

Uppercase letters: A=65, B=66, ..., Z=90
Lowercase letters: a=97, b=98, ..., z=122
Digits: 0=48, 1=49, ..., 9=57
Special characters: Space=32, @=64, etc.

When you convert an integer to a character, C++ interprets that integer as an ASCII code and returns the corresponding character.

---

8. Displaying Results

The program prints:

Output:

Integer: 65
Character (method 1): A
Character (method 2): A

Both methods produce the same result because they both convert 65 to 'A'.

---

cout << "Integer: " << num << endl;
cout << "Character (method 1): " << ch1 << endl;
cout << "Character (method 2): " << ch2 << endl;

9. Important Considerations

Valid ASCII Range

: Standard ASCII values range from 0 to 127. Extended ASCII goes up to 255. Values outside this range may produce unexpected results.

Type Safety

: static_cast is safer than C-style casting because:

It performs compile-time checks
It's more explicit about the conversion
It helps prevent accidental type errors

Character vs Integer

: Remember that:

Characters are stored as integers internally
Displaying a char shows the character
Displaying an int shows the number

---

10. return 0;

This ends the program successfully.

---

Summary

Converting integers to characters uses ASCII encoding.
Direct casting (char) is simple but less safe.
static_cast is the recommended modern C++ approach.
ASCII values map numbers to characters (65='A', 97='a', etc.).
Understanding ASCII is essential for character manipulation.

This program is fundamental for understanding how characters are represented in computers and is essential for text processing, encoding, and character-based operations in C++.

Let us now understand every line and the components of the above program.

Note: To write and run C++ programs, you need to set up the local environment on your computer. Refer to the complete article Setting up C++ Development Environment. If you do not want to set up the local environment on your computer, you can also use online IDE to write and run your C++ programs.

Practical Learning Notes for Convert Integer to Char

This C++ program is part of the "String Conversion Programs" topic and is designed to help you build real problem-solving confidence, not just memorize syntax. Start by understanding the goal of the program in plain language, then trace the logic line by line with a custom input of your own. Once you can predict the output before running the code, your understanding becomes much stronger.

A reliable practice pattern is to run the original version first, then modify only one condition or variable at a time. Observe how that single change affects control flow and output. This deliberate style helps you understand loops, conditions, and data movement much faster than copying full solutions repeatedly.

For interview preparation, explain this solution in three layers: the high-level approach, the step-by-step execution, and the time-space tradeoff. If you can teach these three layers clearly, you are ready to solve close variations of this problem under time pressure.

Table of Contents