strtol() ফাংশন স্ট্রিংকে লং ইন্টিজারে কনভার্ট করতে ব্যবহৃত হয়। এটি পয়েন্টারকে লাস্ট ক্যারেক্টারের পরের প্রথম ক্যারেক্টারের দিকে পয়েন্ট করতে সেট করে। সিনট্যাক্স নিচের মতো। এই ফাংশন cstdlib লাইব্রেরিতে থাকে।
long int strtol(const char* str, char** end, int base)
এই ফাংশন তিনটি আর্গুমেন্ট নেয়। আর্গুমেন্টগুলো নিচের মতো −
- str: এটি একটি স্ট্রিংয়ের শুরু।
- str_end: str_end ফাংশন দ্বারা সেট করা হয় শেষ বৈধ ক্যারেক্টারের পরের ক্যারেক্টারের দিকে, যদি কোনো ক্যারেক্টার থাকে, অন্যথায় null।
- base: এটি বেস নির্দিষ্ট করে। বেস ভ্যালু হতে পারে (0, 2, 3, ..., 35, 36) এর মধ্যে।
এই ফাংশন কনভার্টেড long int রিটার্ন করে। যখন ক্যারেক্টার NULL-এ পয়েন্ট করে, এটি ০ রিটার্ন করে।
উদাহরণ
#include <iostream>
#include <cstdlib>
using namespace std;
main() {
// দুটি স্ট্রিং ডিফাইন
char string1[] = "777HelloWorld";
char string2[] = "565Hello";
char* End; // এন্ড পয়েন্টার
int base = 10;
int value;
value = strtol(string1, &End, base);
cout << "The string Value = " << string1 << "\n";
cout << "Long Long Int value = " << value << "\n";
cout << "End String = " << End << "\n"; // লং লং ইন্টিজারের পর বাকি স্ট্রিং
value = strtol(string2, &End, base);
cout << "\nThe string Value = " << string2 << "\n";
cout << "Long Long Int value = " << value << "\n";
cout << "End String = " << End; // লং লং ইন্টিজারের পর বাকি স্ট্রিং
}
আউটপুট
The string Value = 777HelloWorld Long Long Int value = 777 End String = HelloWorld The string Value = 565Hello Long Long Int value = 565 End String = Hello
এখন একটি ভিন্ন বেস ভ্যালু দিয়ে উদাহরণ দেখি। এখানে বেস ১৬। দেওয়া বেসের স্ট্রিং নিলে এটি ডেসিমাল ফরম্যাটে প্রিন্ট করবে।
উদাহরণ
#include <iostream>
#include <cstdlib>
using namespace std;
main() {
// দুটি স্ট্রিং ডিফাইন
char string1[] = "5EHelloWorld";
char string2[] = "125Hello";
char* End; // এন্ড পয়েন্টার
int base = 16;
int value;
value = strtol(string1, &End, base);
cout << "The string Value = " << string1 << "\n";
cout << "Long Long Int value = " << value << "\n";
cout << "End String = " << End << "\n"; // লং লং ইন্টিজারের পর বাকি স্ট্রিং
value = strtol(string2, &End, base);
cout << "\nThe string Value = " << string2 << "\n";
cout << "Long Long Int value = " << value << "\n";
cout << "End String = " << End; // লং লং ইন্টিজারের পর বাকি স্ট্রিং
}
আউটপুট
The string Value = 5EHelloWorld Long Long Int value = 94 End String = HelloWorld The string Value = 125Hello Long Long Int value = 293 End String = Hello
এখানে স্ট্রিং 5E ধারণ করছে তাই এর ভ্যালু ডেসিমালে ৯৪, এবং দ্বিতীয় স্ট্রিং 125 ধারণ করছে। এটি ডেসিমালে ২৯৩।