C:
স্ট্রিংকে লোয়ার কেসে রূপান্তর করা
কিভাবে:
C ভাষায় সরাসরি স্ট্রিংকে লোয়ারকেসে রূপান্তরের জন্য কোন বিল্ট-ইন ফাংশন নেই, উচ্চস্তরের কিছু ভাষার মতো। তবে, C স্ট্যান্ডার্ড লাইব্রেরি ফাংশনগুলি ব্যবহার করে এই প্রক্রিয়াটি সহজেই বাস্তবায়ন করা যায়। নিচে স্ট্রিংকে লোয়ারকেসে রূপান্তর করার জন্য ধাপে ধাপে নির্দেশনা এবং একটি উদাহরণ উল্লেখ করা হল।
#include <stdio.h>
#include <ctype.h>
void toLowerCase(char *str) {
while (*str) {
*str = tolower(*str);
str++;
}
}
int main() {
char text[] = "Hello, World!";
printf("Original: %s\n", text);
toLowerCase(text);
printf("Lowercase: %s\n", text);
return 0;
}
নমুনা আউটপুট:
Original: Hello, World!
Lowercase: hello, world!
এই উদাহরণে, toLowerCase
ফাংশনটি ইনপুট স্ট্রিংয়ের প্রতিটি অক্ষরের মাধ্যমে ঘুরে তাকে এর লোয়ারকেস সমতুল্যে পরিবর্তন করে tolower
ফাংশনের মাধ্যমে যা ctype.h
এ রয়েছে। মৌলিক স্ট্রিংটি পরিবর্তন করে, এই পরিবর্তনটি স্থানেই সম্পাদিত হয়।
গভীর অনুসন্ধান
উপরের উদাহরণে ব্যবহৃত tolower
ফাংশনটি C স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ, বিশেষ করে ctype.h
হেডার ফাইলের মধ্যে। এটি বর্তমান লোকেলের উপর ভিত্তি করে কাজ করে, কিন্তু স্ট্যান্ডার্ড “C” লোকেলের জন্য, এটি ASCII অক্ষর সেট নিয়ে কাজ করে যেখানে ‘A’ থেকে ‘Z’ কে ‘a’ থেকে ‘z’ এ রূপান্তর করা হয়।
ঐতিহাসিকভাবে, C ভাষায় অক্ষর এনকোডিং এবং কেস রূপান্তর করার প্রক্রিয়া ASCII অক্ষর সেটের সাথে দৃঢ়ভাবে জড়িত ছিল, যা আন্তর্জাতিক অথবা স্থানান্তরিত অ্যাপ্লিকেশনগুলিতে যেখানে ASCII সেটের বাইরের অক্ষরগুলি সাধারণ, তাদের উপযোগিতা সীমিত করে দিয়েছিল। আধুনিক প্রোগ্রামিং ভাষাগুলি হয়তো লোকেল এবং ইউনিকোড অক্ষরগুলি বিবেচনায় রেখে কেস রূপান্তর সম্পাদনের জন্য বিল্ট-ইন স্ট্রিং পদ্ধতি অফার করে যা C নেটিভভাবে ল্যাক করে।
ASCII অক্ষরগুলিতে ডিলিং করা বেশিরভাগ অ্যাপ্লিকেশনের জন্য, উল্লেখিত পদ্ধতিটি কার্যকর এবং সরল। এটি C এর প্রোগ্রামারদের ডেটা ম্যানিপুলেশন নিয়ন্ত্রণ দেওয়ার প্রবণতাকে উজ্জ্বল করে, যদিও উচ্চস্তরের ভাষাগুলির তুলনায় এতে একটু বেশি পরিশ্রম জড়িত। তবে, যে সকল সিনারিওতে নন-ASCII অক্ষরগুলি নিয়ে ব্যাপক টেক্সট ম্যানিপুলেশনের প্রয়োজন পড়ে, প্রোগ্রামারদের উচিৎ আন্তর্জাতিকরণের ভাল সমর্থন যুক্ত লাইব্রেরিগুলির দিকে ঝুঁকতে, যেমন ICU (International Components for Unicode)।