- 1 1. परिचय
- 2 2. C भाषा मा क्यारेक्टर एन्कोडिङ के हो? आधारभूत र प्रकारहरू
- 3 3. C भाषा मा अक्षर र अक्षर कोडको आधारभूत ह्यान्डलिङ
- 4 4. C भाषा मा क्यारेक्टर कोडको प्राप्ति र प्रदर्शन
- 5 5. C भाषा मा क्यारेक्टर कोड र स्ट्रिङ अपरेसन
- 6 6. जापानी अक्षरहरूको ह्यान्डलिङ र ध्यान दिनुपर्ने बुँदाहरू
- 7 7. C भाषा मा क्यारेक्टर एन्कोडिङको रूपान्तरण र अनुकूलता
- 8 8. सारांश
1. परिचय
C भाषा मा “अक्षर कोड” भनेको अक्षरलाई संख्यात्मक रूपमा प्रतिनिधित्व गर्ने, प्रोग्राममा प्रयोग गर्दा महत्वपूर्ण आधार हो। अक्षर कोडको उचित बुझाइ विशेष गरी जापानी जस्ता बहुभाषी समर्थन आवश्यक परेमा अनिवार्य हुन्छ, र अक्षर बिग्रनु वा डेटा प्रशोधन त्रुटि रोक्न पनि महत्त्वपूर्ण छ। यस लेखमा, C भाषामा अक्षर कोडको आधारभूत कुरा, विभिन्न अक्षर कोडको ह्यान्डलिङ्ग, स्ट्रिङ अपरेसनमा ध्यान दिनुपर्ने बुँदाहरूलाई विस्तृत रूपमा व्याख्या गर्नेछौं। यस लेख मार्फत, C भाषामा अक्षर प्रशोधन र अक्षर कोडको आधारलाई दृढ रूपमा बुझी, व्यावहारिक सीप हासिल गरौं।
2. C भाषा मा क्यारेक्टर एन्कोडिङ के हो? आधारभूत र प्रकारहरू
क्यारेक्टर एन्कोडिङको आधारभूत
क्यारेक्टर एन्कोडिङ भनेको अक्षरलाई संख्यात्मक रूपमा प्रतिनिधित्व गर्ने, कम्प्युटरले अक्षरलाई व्याख्या गर्न सक्ने बनाउने मानक हो। उदाहरणका लागि, ASCII कोडमा अक्षर “A” लाई संख्या 65 सँग मिल्दछ। C भाषा सहित धेरै प्रोग्रामिङ भाषाहरूले यस्ता क्यारेक्टर एन्कोडिङ मार्फत अक्षरहरूलाई ह्यान्डल र प्रदर्शन गर्छन्।
प्रमुख क्यारेक्टर एन्कोडिङका प्रकारहरू
ASCII
ASCII (American Standard Code for Information Interchange) 7‑बिटको क्यारेक्टर सेट हो जसमा अंग्रेजी अंक र प्रतीकहरू समावेश छन्, र C भाषाको आधारभूत क्यारेक्टर एन्कोडिङ हो। ASCII कोड 0 देखि 127 सम्मका संख्याहरूसँग मिल्दछ, र अंग्रेजी भाषाको क्यारेक्टर अभिव्यक्तिमा केन्द्रित छ।
Unicode र UTF-8
Unicode बहुभाषी समर्थनका लागि विकास गरिएको क्यारेक्टर एन्कोडिङ मानक हो। UTF-8 Unicode को एन्कोडिङ विधिहरूमध्ये एक हो, जसले परिवर्तनशील लम्बाइको एन्कोडिङ प्रयोग गर्छ र ASCII सँग अनुकूलता राख्छ। UTF-8 विशेष गरी बहुभाषी समर्थन आवश्यक पर्ने प्रणालीहरू र वेब वातावरणमा व्यापक रूपमा प्रयोग हुन्छ।
Shift_JIS र EUC-JP
जापानी भाषा वातावरणमा प्रयोग हुने क्यारेक्टर एन्कोडिङहरूमा Shift_JIS र EUC-JP समावेश छन्। Shift_JIS विशेष गरी Windows वातावरणमा धेरै प्रयोग हुन्छ, र जापानी क्यान्जी, काताकाना आदि अक्षरहरूलाई 2 बाइटमा प्रतिनिधित्व गर्छ। EUC-JP UNIX‑प्रकारको प्रणालीहरूमा मुख्य रूपमा प्रयोग हुन्छ, र Shift_JIS भन्दा फरक संरचनामा जापानी अक्षरहरूलाई समर्थन गर्छ।
3. C भाषा मा अक्षर र अक्षर कोडको आधारभूत ह्यान्डलिङ
char
प्रकारको आधारभूत
C भाषामा, अक्षरहरूलाई char
प्रकारले प्रतिनिधित्व गरिन्छ।char
प्रकारले 1 बाइट मेमोरी प्रयोग गरेर अक्षरलाई प्रतिनिधित्व गर्छ, र त्यसमा अक्षर कोडसँग सम्बन्धित संख्या संग्रहित हुन्छ। तलमा, char
प्रकार प्रयोग गरेर अक्षरको आधारभूत सञ्चालन उदाहरण छ।
char letter = 'A'; // सिधै अक्षर असाइन गर्नुहोस्
char code = 65; // ASCII कोडलाई सङ्ख्यात्मक रूपमा असाइन गर्नुहोस्
Escape अनुक्रमको प्रयोग
विशिष्ट सञ्चालनलाई प्रतिनिधित्व गर्न, Escape अनुक्रम भन्ने विशेष लेखन प्रयोग गरिन्छ। उदाहरणका लागि, नयाँ लाइनलाई प्रतिनिधित्व गर्ने वा ट्याबलाई प्रतिनिधित्व गर्ने सामान्य छन्।
char newline = 'n'; // नयापङ्क्ति वर्ण
char tab = 't'; // ट्याब वर्ण
Escape अनुक्रम प्रयोग गरेर, प्रोग्राम भित्र नियन्त्रण अक्षरहरूलाई प्रभावकारी रूपमा ह्यान्डल गर्न सम्भव हुन्छ।
4. C भाषा मा क्यारेक्टर कोडको प्राप्ति र प्रदर्शन
यस खण्डमा, C भाषामा क्यारेक्टर कोड प्राप्त गर्ने तरिका र प्राप्त क्यारेक्टर कोडलाई कसरी प्रदर्शन गर्ने भन्ने बारे विस्तृत रूपमा व्याख्या गरिन्छ।
printf
कार्यमा क्यारेक्टर कोडको प्रदर्शन
C भाषामा, printf
कार्य प्रयोग गरेर, क्यारेक्टर र त्यसको क्यारेक्टर कोडलाई सजिलै देखाउन सकिन्छ।
#include <stdio.h>
int main() {
char ch = 'A';
printf("Character: %c, ASCII Code: %dn", ch, ch); // अक्षर र कोड प्रिन्ट गर्नुहोस्
return 0;
}
यो कोडमा, 'A'
क्यारेक्टरलाई देखाइन्छ र त्यसको ASCII कोड 65 लाई आउटपुट गरिन्छ।
क्यारेक्टर कोडको दायरा निर्दिष्ट प्रदर्शन
निर्दिष्ट दायरा भित्रको क्यारेक्टर कोड र त्यससँग सम्बन्धित क्यारेक्टरलाई एकै पटक देखाउन पनि सम्भव छ। उदाहरणका लागि, ASCII कोडको दायरा 32-126 भित्रको क्यारेक्टर र क्यारेक्टर कोडलाई देखाइन्छ।
#include <stdio.h>
int main() {
for (int code = 32; code <= 126; code++) {
printf("ASCII code %d: %cn", code, (char)code);
}
return 0;
}

5. C भाषा मा क्यारेक्टर कोड र स्ट्रिङ अपरेसन
स्ट्रिङ अपरेसन गर्दा, क्यारेक्टर कोडलाई बुझ्न र कार्यहरूलाई उपयुक्त रूपमा प्रयोग गर्न महत्त्वपूर्ण छ।
सुरक्षित स्ट्रिङ प्रतिलिपि रstrncpy
को प्रयोग
strncpy
यो कार्यले बफर ओभरफ्लो रोक्न, प्रतिलिपि गन्तव्यको एरे साइज निर्दिष्ट गरेर सुरक्षित रूपमा स्ट्रिङ प्रतिलिपि गर्न सक्षम बनाउँछ। विशेष गरी, strcpy
मा बफर साइज अपर्याप्त भएमा मेमोरी त्रुटि हुन सक्छ, त्यसैले strncpy
सिफारिस गरिन्छ।
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello";
char dest[10];
strncpy(dest, src, sizeof(dest) - 1); // सुरक्षित रूपमा प्रतिलिपि गर्नुहोस्
dest[sizeof(dest) - 1] = '\0'; // समाप्ति वर्ण स्पष्ट रूपमा थप्नुहोस्
printf("Copied string: %sn", dest);
return 0;
}
स्ट्रिङ तुलना रstrcmp
को प्रयोग
स्ट्रिङ तुलना गर्दा, strcmp
कार्यलाई प्रयोग गरी स्ट्रिङ बराबर छन् कि छैनन् निर्धारण गरिन्छ।
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Apple";
char str2[] = "Banana";
int result = strcmp(str1, str2);
if (result == 0) {
printf("The strings are equal.n");
} else {
printf("The strings are not equal.n");
}
return 0;
}
6. जापानी अक्षरहरूको ह्यान्डलिङ र ध्यान दिनुपर्ने बुँदाहरू
C भाषामा जापानी जस्ता मल्टिबाइट अक्षरहरूलाई सही रूपमा ह्यान्डल गर्नको लागि उपयुक्त क्यारेक्टर कोड निर्दिष्ट गर्न आवश्यक छ। साथै, यदि जापानी समावेश गर्ने स्ट्रिङहरूमा अक्षर बिग्रने समस्या देखिएमा, क्यारेक्टर कोड फरक हुन सक्छ।
नमूना कोड: setlocale
प्रयोग गरेर जापानी प्रदर्शन
तलको कोडले C भाषामा जापानी स्ट्रिङलाई UTF-8 ढाँचामा प्रदर्शन गर्ने तरिका देखाउँछ।
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "ja_JP.UTF-8"); // UTF-8 नेपाली सेटिङ
printf("नमस्तेn"); // नेपाली स्ट्रिङको आउटपुट
return 0;
}
7. C भाषा मा क्यारेक्टर एन्कोडिङको रूपान्तरण र अनुकूलता
विभिन्न क्यारेक्टर एन्कोडिङहरू बीचको रूपान्तरणमा、iconv
लाइब्रेरी प्रयोग गर्नु सामान्य हो। तल Shift_JIS बाट UTF-8 मा रूपान्तरणको उदाहरण देखाउँछ।
#include <stdio.h>
#include <stdlib.h>
#include <iconv.h>
int main() {
iconv_t cd = iconv_open("UTF-8", "SHIFT_JIS"); // रूपान्तरणकर्ता आरम्भ
char sjis_str[] = "नमस्ते";
char utf8_str[100];
char *inbuf = sjis_str;
char *outbuf = utf8_str;
size_t inbytesleft = strlen(sjis_str);
size_t outbytesleft = sizeof(utf8_str) - 1;
iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
printf("UTF-8: %sn", utf8_str);
iconv_close(cd);
return 0;
}
8. सारांश
सी भाषामा अक्षर कोडको ह्यान्डलिंग बुझ्नु, विशेष गरी जापानी भाषा समावेशी बहुभाषी अनुप्रयोग विकासमा महत्त्वपूर्ण छ।strncpy
जस्तै सुरक्षित कार्यहरू, र iconv
लाई प्रयोग गरेर अक्षर कोड रूपान्तरण प्रविधि प्रयोग गर्दा, अक्षर बिग्रनु वा डेटा प्रक्रिया त्रुटि रोक्न सकिन्छ।