Để lặp qua một chuỗi str tôi đã sử dụng:Sử dụng strtok trong một vòng lặp for
for (tok = strtok(str, ";"); tok && *tok; tok = strtok(NULL, ";"))
{
//do stuff
}
Tôi muốn hiểu làm thế nào vòng lặp này hoạt động. Dường như với tôi:
(1) tok = strtok(str, ";"); //initialization of tok with the first token in str
(2) tok = strtok(NULL, ";"); // go to the next token in str? how does this work?
(3) tok && *tok; //this stops the loop when tok =NULL or *tok=NULL
Tôi rất cảm kích sự giúp đỡ của bạn!
Bạn đúng trên cả ba số :) – dasblinkenlight
Hãy xem xét ** * câu hỏi để biết thêm chi tiết về cách 'strtok()' hoạt động. Đặc biệt http://stackoverflow.com/questions/3889992/please-help-in-strtok?rq=1 – Barmar
Bài kiểm tra '* tok' không phải là một phần của thành ngữ chuẩn strtok. Có vẻ như nó muốn dừng sớm trên một cánh đồng trống, nhưng nó sẽ không hoạt động vì strtok bỏ qua các trường trống. –