সি/সি++-এ ক্যারেক্টারগুলো আসলেই তাদের ASCII (বা সমতুল্য এনকোডিং) মান হিসেবে সংরক্ষিত থাকে। একটি সিঙ্গেল ডিজিট পূর্ণসংখ্যা (০-৯) কে সংশ্লিষ্ট ASCII ক্যারেক্টারে কনভার্ট করার সবচেয়ে সহজ পদ্ধতি হলো '0' ক্যারেক্টারের ASCII মান দিয়ে যোগ করা।
লজিক
ASCII('0') = 48
ASCII('1') = 49 = 48 + 1
ASCII('2') = 50 = 48 + 2
...
ASCII('9') = 57 = 48 + 9
সুতরাং: ascii_char = '0' + digit
উদাহরণ
#include <stdio.h>
int intToAscii(int number) {
return '0' + number; // শুধু ০-৯ এর জন্য বৈধ
}
int main() {
printf("The ASCII of 5 is %d\n", intToAscii(5)); // 53
printf("The ASCII of 8 is %d\n", intToAscii(8)); // 56
// ক্যারেক্টার হিসেবে প্রিন্ট করতে:
printf("Char of 5: %c\n", intToAscii(5)); // '5'
printf("Char of 8: %c\n", intToAscii(8)); // '8'
return 0;
}
আউটপুট
The ASCII of 5 is 53
The ASCII of 8 is 56
Char of 5: 5
Char of 8: 8
সীমাবদ্ধতা ও সতর্কতা
- এই পদ্ধতি শুধু ০-৯ রেঞ্জের জন্য কাজ করে
- যদি
number > 9বাnumber < 0হয়, তবে আউটপুট অবৈধ ASCII ক্যারেক্টার হবে - বড় নম্বর বা সম্পূর্ণ স্ট্রিং কনভার্ট করতে
sprintf,itoa(নন-স্ট্যান্ডার্ড), বা C++-এstd::to_stringব্যবহার করুন
আধুনিক C++ পদ্ধতি
#include <string>
#include <iostream>
int main() {
int num = 42;
std::string s = std::to_string(num); // "42"
std::cout << s << std::endl;
return 0;
}
ASCII টেবিল রেফারেন্স (আংশিক)
| Char | Dec | Hex |
|---|---|---|
| '0' | 48 | 0x30 |
| 'A' | 65 | 0x41 |
| 'a' | 97 | 0x61 |