एक स्ट्रिंग को लोअर केस में परिवर्तित करना

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("मूल: %s\n", text);

    toLowerCase(text);
    printf("लोअरकेस: %s\n", text);

    return 0;
}

नमूना आउटपुट:

मूल: Hello, World!
लोअरकेस: hello, world!

इस उदाहरण में, toLowerCase फंक्शन इनपुट स्ट्रिंग के प्रत्येक अक्षर के माध्यम से इटरेट करता है, इसे ctype.h से tolower फंक्शन का उपयोग करके इसके लोअरकेस समकक्ष में परिवर्तित करता है। संशोधन मौके पर ही किया जाता है, मूल स्ट्रिंग को बदलते हुए।

गहराई से जानकारी

उपरोक्त उदाहरण में प्रयुक्त tolower फंक्शन C स्टैंडर्ड लाइब्रेरी का हिस्सा है, विशेष रूप से ctype.h हेडर फाइल के भीतर। यह वर्तमान लोकेल के आधार पर काम करता है, लेकिन मानक “C” लोकेल के लिए, यह ASCII अक्षर समूह को संभालता है जहां ‘A’ से ‘Z’ को ‘a’ से ‘z’ में परिवर्तित किया जाता है।

ऐतिहासिक रूप से, C में अक्षर एनकोडिंग और केस कन्वर्जन को संभालना ASCII अक्षर समूह के साथ कसकर जुड़ा हुआ था, जिससे इसकी उपयोगिता अंतरराष्ट्रीय या स्थानीयकृत अनुप्रयोगों में सीमित हो जाती है जहां ASCII सेट के बाहर के अक्षर आम हैं। आधुनिक प्रोग्रामिंग भाषाएँ लोकेल और Unicode अक्षरों को ध्यान में रखते हुए मामले के परिवर्तन के लिए बिल्ट-इन स्ट्रिंग विधियाँ प्रदान कर सकती हैं, जो C में स्वाभाविक रूप से अभाव है।

गैर-ASCII अक्षरों के साथ व्यापक पाठ संचालन की आवश्यकता वाली परिस्थितियों में, प्रोग्रामर अंतर्राष्ट्रीयकरण समर्थन प्रदान करने वाली लाइब्रेरियों का उपयोग करने पर विचार कर सकते हैं, जैसे कि ICU (इंटरनॅशनल कम्पोनेंट्स फॉर यूनिकोड)। हालांकि, ASCII पाठ से संबंधित अधिकांश अनुप्रयोगों के लिए, प्रदर्शित दृष्टिकोण कुशल और सीधा है। यह C की प्रवृत्ति को उजागर करता है जो प्रोग्रामरों को डेटा संचालन पर नियंत्रण देता है, हालांकि उच्च-स्तरीय भाषाओं की तुलना में थोड़ा अधिक काम होता है।