সি-তে Itoa ফাংশন কীভাবে ব্যবহার করবেন

Si Te Itoa Phansana Kibhabe Byabahara Karabena



সি প্রোগ্রামিং ভাষা পাঁচ দশক আগে চালু হয়েছিল। তারপর থেকে এটি প্রোগ্রামিং জগতে ব্যাপক জনপ্রিয়তা লাভ করে। কাঠামোগত সরলতা, ফাংশন, পোর্টেবিলিটি, দক্ষ মেমরি ম্যানেজমেন্ট ইত্যাদির বৈশিষ্ট্যগুলির কারণে এটি অন্যান্য ভাষার চেয়েও অসামান্য। অন্যান্য বিভিন্ন বৈশিষ্ট্য থাকা সত্ত্বেও, সি-তে ফাংশনগুলি সবচেয়ে বিশিষ্ট সম্পদ যা অনেক ব্যবহারকারীকে শক্তিশালী কোড স্নিপেট লিখতে সহায়তা করে।

তদুপরি, itoa একটি বহুল ব্যবহৃত অ-মানক ফাংশন যা ডেটা টাইপ রূপান্তরকারী হিসাবে কাজ করে। এটি ইনপুট হিসাবে ডেটা টাইপ int নেয় এবং এটিকে একটি স্ট্রিংয়ে রূপান্তর করে। তবে আপনারা অনেকেই এর ব্যবহার জানেন না। অতএব, এই নির্দেশিকাটি সংক্ষিপ্তভাবে ব্যাখ্যা করে কিভাবে কোন ঝামেলা ছাড়াই C-তে itoa ফাংশন ব্যবহার করতে হয়।







সি-তে Itoa ফাংশনটি কীভাবে ব্যবহার করবেন

বেসিক দিয়ে শুরু করা যাক। এখানে itoa ফাংশনের জন্য সহজ সিনট্যাক্স রয়েছে:



int প্রধান ( ) {

int একের উপর = 12345 ;
চর str [ বিশ ] ;
নিমজ্জিত ( একের উপর , str , 10 ) ;
printf ( 'পূর্ণসংখ্যা: %d \n স্ট্রিং: %s \n ' , একের উপর , str ) ;
ফিরে 0 ;


}

প্রদত্ত প্রোগ্রামে, বিশদ বিবরণ নিম্নরূপ:



  1. num হল পূর্ণসংখ্যা
  2. str হল অক্ষর
  3. 10 হল খাদ

এখন, আসুন এগিয়ে যাই, একটি প্রোগ্রাম লিখি এবং itoa ফাংশনটি বাস্তবায়ন করি। উদাহরণস্বরূপ, স্ট্রিং এ প্রবেশ করা সংখ্যা পরিবর্তন করার জন্য আমাদের একটি প্রোগ্রাম লিখতে হবে।





# অন্তর্ভুক্ত করুন

# অন্তর্ভুক্ত করুন

অকার্যকর নিমজ্জিত ( int একের উপর , চর * str , int ভিত্তি ) {

int i = 0 ;
int নেতিবাচক = 0 ;

যদি ( একের উপর == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
ফিরে ;
}


যদি ( একের উপর < 0 && ভিত্তি != 10 ) {

নেতিবাচক = 1 ;
একের উপর = - একের উপর ;
}

যখন ( একের উপর != 0 ) {
int rem = একের উপর % ভিত্তি ;

str [ i ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'ক' : rem + '0' ;

একের উপর = একের উপর / ভিত্তি ;
}

যদি ( নেতিবাচক && ভিত্তি == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int শুরু = 0 ;
int শেষ = i - 1 ;


যখন ( শুরু < শেষ ) {

চর তাপমাত্রা = str [ শুরু ] ;
str [ শুরু ] = str [ শেষ ] ;
str [ শেষ ] = তাপমাত্রা ;
শুরু ++;
শেষ --;
}
}

int প্রধান ( ) {
int একের উপর ;
printf ( 'একটি পূর্ণসংখ্যা লিখুন:' ) ;

যদি ( scanf ( '%d' , এবং একের উপর ) != 1 ) {
fprintf ( stderr , 'অবৈধ ইনপুট। অনুগ্রহ করে একটি পূর্ণসংখ্যা লিখুন। \n ' ) ;
ফিরে EXIT_FAILURE ;
}

int max_size = snprintf ( খালি , 0 , '%d' , একের উপর ) + 1 ;
চর * str = ( চর * ) malloc ( max_size ) ;

যদি ( str == খালি ) {
fprintf ( stderr , 'মেমরি বরাদ্দ ব্যর্থ হয়েছে \n ' ) ;
ফিরে EXIT_FAILURE ;
}


নিমজ্জিত ( একের উপর , str , 10 ) ;

printf ( 'পূর্ণসংখ্যা: %d \n স্ট্রিং: %s \n ' , একের উপর , str ) ;

বিনামূল্যে ( str ) ;

ফিরে 0 ;


}

পূর্ববর্তী প্রোগ্রামে, itoa (int num, char *str, int base) হল itoa ফাংশন। অধিকন্তু, নিম্নলিখিত সিনট্যাক্স সরাসরি ফলাফলে শূন্য নির্ধারণ করে যখন ইনপুট সংখ্যাটিও শূন্য হয়:

যদি ( একের উপর == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
ফিরে ;


}

যখন ইনপুট নম্বর নেতিবাচক হয় এবং ভিত্তিটিও 10 না হয়, নিম্নলিখিত প্রোগ্রাম লাইনগুলি নেতিবাচক পতাকা সেট করবে:



যদি ( একের উপর < 0 && ভিত্তি != 10 ) {

নেতিবাচক = 1 ;
একের উপর = - একের উপর ;

নিম্নলিখিত লুপটি সমস্ত অঙ্কগুলিকে প্রক্রিয়া করে এবং তাদের একটি সংশ্লিষ্ট অক্ষরে রূপান্তর করে। তাই, 10-এর বেশি বেসগুলির জন্য, প্রোগ্রামটি 10 ​​থেকে 15 সংখ্যার জন্য 'a' থেকে 'f' অক্ষর ব্যবহার করে।

}

যখন ( একের উপর != 0 ) {

int rem = একের উপর % ভিত্তি ;

str [ i ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'ক' : rem + '0' ;

একের উপর = একের উপর / ভিত্তি ;

}

যখন সংখ্যাটি মূলত ঋণাত্মক হয় এবং ভিত্তিটি 10 ​​হয়, তখন প্রোগ্রামটি একটি ফলাফলের স্ট্রিংয়ে নেতিবাচক চিহ্ন যুক্ত করবে।

যদি ( নেতিবাচক && ভিত্তি == 10 )

str [ i ++ ] = '-' ;

নিম্নলিখিত লাইনগুলি ফলাফলের স্ট্রিংটি বন্ধ করে এবং তারপরে এটিকে বিপরীত করে কারণ রূপান্তর প্রক্রিয়া চলাকালীন অঙ্কগুলি বিপরীত ক্রমে প্রাপ্ত হয়:

str [ i ] = ' \0 ' ;

// স্ট্রিং বিপরীত

int শুরু = 0 ;

int শেষ = i - 1 ;

যখন ( শুরু < শেষ ) {

চর তাপমাত্রা = str [ শুরু ] ;
str [ শুরু ] = str [ শেষ ] ;
str [ শেষ ] = তাপমাত্রা ;
শুরু ++;
শেষ --;


}

তাই, প্রোগ্রামটি ইনপুট হিসাবে পূর্ণসংখ্যা নেয় এবং স্ট্রিং উপস্থাপনার জন্য মেমরি বরাদ্দ করে। এর পরে, এটি ইটোয়াকে পূর্ণসংখ্যাকে স্ট্রিং-এ রূপান্তর করতে কল করে এবং আসল পূর্ণসংখ্যাটি প্রিন্ট করে। অবশেষে, এটি বরাদ্দ মেমরি মুক্ত করে। উদাহরণস্বরূপ, প্রোগ্রামটিতে একটি নম্বর দেওয়া যাক:

যাইহোক, যদি আপনি একটি নন-ইনটিজার নম্বর লিখুন, প্রোগ্রামটি নিম্নলিখিত ফলাফল দেখাবে:

উপসংহার

এইভাবে আপনি সি-তে itoa ফাংশনটি সহজেই প্রয়োগ করতে এবং ব্যবহার করতে পারেন। আমরা একটি বিস্তারিত উদাহরণ ব্যবহার করেছি যাতে পূর্ণসংখ্যাকে স্ট্রিং-এ রূপান্তর করতে একাধিক ফাংশন রয়েছে। মনে রাখবেন, এটি শুধুমাত্র একটি উদাহরণ, কিন্তু আপনি আশ্চর্যজনক প্রোগ্রাম লিখতে বিভিন্ন ফাংশনের সাথে itoa ফাংশন একত্রিত করতে পারেন।