C Type Casting

Introduction to C Type Casting

C language में type casting एक ऐसी process होती है जिसमें एक data type के variable की value का दूसरे data type में conversion होता है। कई बार ये variables automatically convert हो जाते है और कई बार आप इन्हें manually भी convert करते है।

कई बार बहुत से students type casting या type conversion के बीच confuse हो जाते है। इसलिए मैं आपको बताना चाहूंगा की C language में एक data type जब दूसरे data type में automatically बदलता है तो उसे type conversion कहा जाता है।

लेकिन जब आप explicitly या manually type cast operator का use करते हुए किसी data type के variable को दूसरे data type में बदलते है तो उसे type casting कहा जाता है।

C language में casting/conversion की process 2 प्रकार की होती है।

From Higher Type to Lower Type

इस तरह की casting में एक ऐसे data type का variable जो अधिक size की value store करता है उसको ऐसे data type में convert किया जाता है जो कम size की value store करता है। इस तरह के conversion में data का loss होता है।

int result = 5/2;  /* Higher type to lower type  */

उदाहरण के लिए यदि आप 5 को 2 से divide करेंगे तो 2.5 result प्राप्त होगा। यदि इस result को आप किसी integer variable में store करने का प्रयास करेंगे तो सिर्फ 2 ही result के रूप में store होगा। यँहा पर .5 का loss हुआ है। ये एक higher type (float) से lower type (int) में conversion है।

From Lower Type to Higher Type

इस तरह की casting में कम size की value store करने वाले data type के variable को अधिक size की value store करने वाले data type में convert किया जाता है।

long result = 2+2;  /* Lower to higher type */

उदाहरण के लिए यदि आप किसी integer result को long type के variable में store करने का प्रयास करते है तो ऐसी casting lower type से higher type casting होती है।

Type Conversion (Implicit/Automatic)

जैसा की आपको पता है type conversion automatically compiler द्वारा perform किया जाता है। इसमें आपको कुछ भी करने की आवश्यकता नहीं होती है और ना ही इसमें किसी तरह के operator की आवश्यकता होती है।

ये compatible type के बीच में ही perform होता है। Compatible types ऐसे data types होते है जिनमें type conversion possible है।

#include <stdio.h>
#include <conio.h>
int main()
{
   int num = 5;
   float fnum;

   /* Converting automatically from integer to float */
   fnum = num;
   printf(“Number is :%f”,fnum);
   return 0;
}
Number is : 5.000000

Type Casting (Explicit/Manually)

Type casting आप खुद perform करते है। इसके लिए आप type cast operator यूज़ करते है। C language में () को type cast operator कहा जाता है। इस operator को आप किसी expression से पहले use करते है।

इन brackets में आप उस data type का नाम लिखते है जिसमें आप expression के result को convert करना चाहते है।

#include <stdio.h>
int main()
{
    int num = 5;
    char cnum;

    /* Manually casting integer type to char */
    cnum = (char) num;
    printf(“Number is : %d”,(int)cnum); /* Type Casting Again */
}
Number is : 5

Strings Type Casting Functions

C language string के लिए अलग से data type नहीं provide करती है। C में string के लिए आप character array define करते है। इसलिए casting operator द्वारा string को cast करना संभव नहीं है।

Strings के साथ casting operations perform करने के लिए C language आपको 5 built in functions provide करती है। इन functions को use करने के लिए आपको program में <stdlib.h> header file include करनी होती है। इन functions को use करके आप strings के साथ भी casting perform कर सकते है।

atof()

ये function string data type को float data type में convert करने के लिए use किया जाता है। ये function एक float value return करता है इसमें आप argument के रूप में एक string pass करते है।

double atof(const char* string);

atoi()

ये function string data type को integer data type में convert करने के लिए use किया जाता है।

int atoi(const char* string);

atol()

ये function string data type को long data type में convert करने के लिए use किया जाता है।

long int atol(const char* string);

itoa()

ये function integer data type को string data type में convert करने के लिए use किया जाता है। इस function में argument के रूप में आप एक integer value, एक character array और number system base pass करते है।

char* itoa(int value, char* string, int base);

ltoa()

ये function long data type को string data type में convert करने के लिए use किया जाता है।

char* ltoa(long value, char* string, int base);