সি প্রোগ্রামিং-এ একটি ক্যারেক্টার গ্রহণ করে সেটি ইংরেজি অক্ষর (A-Z, a-z), সংখ্যা (0-9) নাকি স্পেশাল ক্যারেক্টার — তা চেক করার সাধারণ পদ্ধতি নিচে দেওয়া হলো।
লজিক
- অ্যালফাবেট:
'A' <= ch && ch <= 'Z'বা'a' <= ch && ch <= 'z' - ডিজিট:
'0' <= ch && ch <= '9' - স্পেশাল ক্যারেক্টার: উপরের দুটি বাদে বাকি সব
উদাহরণ
#include <stdio.h>
#include <ctype.h> // isalpha, isdigit, ispunct ইত্যাদির জন্য
int main() {
char ch;
printf("Enter a character: ");
scanf(" %c", &ch); // স্পেস দিয়ে লিডিং নিউলাইন এড়ানো হয়
if (isalpha(ch))
printf("This is an alphabet");
else if (isdigit(ch))
printf("This is a number");
else
printf("This is a special character");
return 0;
}
আউটপুট (নমুনা)
Enter a character: F
This is an alphabet
Enter a character: r
This is an alphabet
Enter a character: 7
This is a number
Enter a character: #
This is a special character
বিকল্প পদ্ধতি (লাইব্রেরি ফাংশন ব্যবহার করে)
<ctype.h> হেডার থেকে নিচের ফাংশনগুলো ব্যবহার করা ভালো — এটি লোকেল-এওয়্যার (locale-aware) এবং পোর্টেবল:
isalpha(ch)— অক্ষর কিনাisdigit(ch)— ডিজিট কিনাisalnum(ch)— অ্যালফানিউমেরিক কিনাispunct(ch)— পাঙ্কচুয়েশন/স্পেশাল ক্যারেক্টার কিনাisspace(ch)— হোয়াইটস্পেস কিনা
দ্রষ্টব্য
scanf(" %c", &ch)এ স্পেস দিয়ে পূর্বের নিউলাইন ক্যারেক্টার এড়ানো হয়- এস্কি (ASCII) বেসড চেক করলে নন-ইংরেজি ক্যারেক্টার (যেমন বাংলা, একসেন্টেড লেটার) সঠিক চেক হয় না — সেক্ষেত্রে
ctype.hফাংশন বা Unicode লাইব্রেরি ব্যবহার করুন