এই ফাংশনটি strtok() ফাংশনের অনুরূপ। একমাত্র মূল পার্থক্য হল _r, যাকে বলা হয় পুনঃপ্রবেশকারী ফাংশন।
একটি পুনঃপ্রবেশকারী ফাংশন হল একটি ফাংশন যা এটি কার্যকর করার সময় বাধাগ্রস্ত হতে পারে। এই ধরনের ফাংশন এক্সিকিউশন পুনরায় শুরু করতে ব্যবহার করা যেতে পারে।
এই সত্যের কারণে, পুনঃপ্রবেশকারী ফাংশনগুলি থ্রেড-নিরাপদ, মানে তারা নিরাপদে কোনো ক্ষতি ছাড়াই থ্রেড দ্বারা বাধাপ্রাপ্ত হতে পারে।
strtok_r() ফাংশনের একটি অতিরিক্ত প্যারামিটার রয়েছে যাকে বলা হয় প্রসঙ্গ। যাতে ফাংশনটি সঠিক জায়গায় পুনরায় শুরু করতে পারে।
সিনট্যাক্স strtok_r() ফাংশনের জন্য নিম্নরূপ:
#include <string.h> char *strtok_r(char *string, const char *limiter, char **context);
উদাহরণ
strtok_r() ফাংশন ব্যবহারের জন্য C প্রোগ্রামটি নিচে দেওয়া হল −
#include <stdio.h> #include <string.h> int main(){ char input_string[] = "Hello Tutorials Point"; char token_list[20][20]; char* context = NULL; char* token = strtok_r(input_string, " ", &context); int num_tokens = 0; // Index to token list. We will append to the list while (token != NULL){ strcpy(token_list[num_tokens], token); // Copy to token list num_tokens++; token = strtok_r(NULL, " ", &context); } // Print the list of tokens printf("Token List:\n"); for (int i=0; i < num_tokens; i++) { printf("%s\n", token_list[i]); } return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Token List: Hello Tutorials Point