কম্পিউটার

C ভাষায় strtok() ফাংশন কি?


strtok() ফাংশন হল হেডার ফাইল #include

এর একটি অংশ

strtok() ফাংশনের সিনট্যাক্স নিম্নরূপ −

char* strtok(char* string, const char* limiter);

ইনপুট স্ট্রিং স্ট্রিং এবং একটি ডিলিমিটার ক্যারেক্টার লিমিটার। strtok() স্ট্রিংটিকে সীমাবদ্ধ অক্ষরের উপর ভিত্তি করে টোকেনে ভাগ করবে।

আমরা strtok() থেকে স্ট্রিংগুলির একটি তালিকা আশা করতে পারি। কিন্তু, ফাংশনটি একটি একক স্ট্রিং প্রদান করে কারণ স্ট্রটোক (ইনপুট, লিমিটার) কল করার পরে, এটি প্রথম টোকেন প্রদান করবে।

কিন্তু NULL ইনপুট স্ট্রিং-এ আমাদের ফাংশনটিকে বারবার কল করতে হবে, যতক্ষণ না আমরা NULL পাই! সাধারণত, আমরা স্ট্রটোক (NULL, delim) কল করতে থাকতাম যতক্ষণ না এটি NULL ফিরে আসে।

উদাহরণ

strtok() ফাংশন-এর জন্য C প্রোগ্রাম নিচে দেওয়া হল −

#include <stdio.h>
#include <string.h>
int main() {
   char input_string[] = "Hello Tutorials Point!";
   char token_list[20][20];
   char* token = strtok(input_string, " ");
   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(NULL, " "); // Get the next token. Notice that input=NULL now!
   }
   // 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!

ইনপুট স্ট্রিং হল "হ্যালো টিউটোরিয়াল পয়েন্ট", এবং আমরা এটিকে স্পেস দিয়ে টোকেনাইজ করার চেষ্টা করছি৷

আমরা strtok(ইনপুট, " ") ব্যবহার করে প্রথম টোকেন পাই। এখানে দ্বৈত উদ্ধৃতিগুলি বিভাজনকারী এবং একটি একক অক্ষর স্ট্রিং!

তারপরে, আমরা strtok(NULL, " ") ব্যবহার করে টোকেন পেতে থাকি এবং যতক্ষণ না আমরা strtok( থেকে NULL না পাই) ততক্ষণ লুপ না করি।


  1. C ভাষায় strncpy() ফাংশন কি?

  2. C ভাষায় strcmp() ফাংশন কি?

  3. C ভাষায় strcat() ফাংশন কি?

  4. C ভাষায় strcpy() ফাংশন কি?