deopen
پنج شنبه 28 آذر 1387, 13:52 عصر
سلام, بتازگی با تابع strtok از کتابخانه cstring آشنا شدم, طرز عملکر این تابع برایم مبهم است :
int main() {
char big[]="hi this is test";
char *tok=0;
tok=strtok(big," ");//first word==>hi
cout<<tok<<endl;
//---------------------
tok+=2;//null
cout<<tok<<endl;
//---------------------
tok+=1;//the rest of sentence
cout<<tok;
cin.get();
return 0;
}
کد بالا رو مشاهده کنید, فقط کلمه اول از جمله جدا شده! کد زیر کد صحیح است اما اینجاست که برایم کاملا مبهم است :
int main() {
char big[]="hi this is a test";
char *tok=0;
tok=strtok(big," ");//first word==>hi
while (tok!=NULL) {
cout<<tok<<endl;
tok=strtok(NULL," ");//get nest token
}
cout<<"";
cin.get();
return 0;
}
آرگومان NULL تعیین میکند که strtok باید عمل خود را از hi به بعد انجام دهد, اگر امکان دارد توضیحات بیشتری به من بدید.
int main() {
char big[]="hi this is test";
char *tok=0;
tok=strtok(big," ");//first word==>hi
cout<<tok<<endl;
//---------------------
tok+=2;//null
cout<<tok<<endl;
//---------------------
tok+=1;//the rest of sentence
cout<<tok;
cin.get();
return 0;
}
کد بالا رو مشاهده کنید, فقط کلمه اول از جمله جدا شده! کد زیر کد صحیح است اما اینجاست که برایم کاملا مبهم است :
int main() {
char big[]="hi this is a test";
char *tok=0;
tok=strtok(big," ");//first word==>hi
while (tok!=NULL) {
cout<<tok<<endl;
tok=strtok(NULL," ");//get nest token
}
cout<<"";
cin.get();
return 0;
}
آرگومان NULL تعیین میکند که strtok باید عمل خود را از hi به بعد انجام دهد, اگر امکان دارد توضیحات بیشتری به من بدید.