สมมติว่าเรามีสตริงที่มีประโยคที่มีคำไม่กี่คำ เราจะต้องพิมพ์แต่ละคำเป็นบรรทัดใหม่ ในการดำเนินการนี้ เราสามารถใช้ฟังก์ชัน 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