สมมติว่าเรามีสตริงที่มีประโยคที่มีคำไม่กี่คำ เราจะต้องพิมพ์แต่ละคำเป็นบรรทัดใหม่ ในการดำเนินการนี้ เราสามารถใช้ฟังก์ชัน strtok() ใต้ไฟล์ส่วนหัว string.h ฟังก์ชันนี้ใช้สตริงและตัวคั่น ที่นี้ตัวคั่นเป็นช่องว่าง " ".
ดังนั้น หากอินพุตเป็นแบบ s ="ให้เราดูสตริง tokenizing สนุก" ผลลัพธ์จะเป็น
Let us see some string tokenizing fun
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
token :=คำแรกโดยใช้ strtok(s, " ") ตัวคั่นคือ " "
-
ในขณะที่โทเค็นไม่เป็นศูนย์ ให้ทำ:
-
โทเค็นการแสดงผล
-
token :=โทเค็นถัดไปของ s จากนี้ไปส่ง NULL เป็นอาร์กิวเมนต์แรกของ strtok ที่มีช่องว่างตัวคั่นเดียวกัน " "
-
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <stdio.h> #include <string.h> int main(){ char s[] = "Let us see some string tokenizing fun"; char* token = strtok(s, " "); while (token) { printf("%s\n", token); token = strtok(NULL, " "); } }
อินพุต
Let us see some string tokenizing fun
ผลลัพธ์
Let us see some string tokenizing fun