//strtok---切割字符串,如192.168.3.22切割为192 168 3 22 //第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中-个或者多个分隔符分割的标记。 // //strtok函数找到str中的下一个标记, 并将其用\0结尾, 返回一个指向这个标记的指针。(注: strtok函数 //会改变被操作的字符串, 所以在使用strtok函数切分的字符串 - 般都是临时拷贝的内容并且可修改。) // //strtok函数的第一 个参数不为NULL, 函数将找到str中第一 个标记,strtok函数将保存它在字符串中的 //位置。strtok函数的第一个参数为NULL, 函数将在同 - 一个字符串中被保存的位置开始, 查找下一一个标 //记。 // //如果字符患中不存在更多的标记, 则返回NULL指针。 int main() { char arr[] = "chang!xing.bin"; char* p = "!."; char tmp[20] = { 0 };//创建临时数组用来接收arr数组,防止arr数组被切割 strcpy(tmp, arr);//将tmp数组防止tmp中 //chang\0xing\0bin\0 char* ret = NULL;//创建ret接收strtok,方便打印 //有两种方法: //1.以下方法只适用于知道切割几次,且切割次数很少时 ret = strtok(tmp, p);//不是空指针 printf("%s\n", ret); ret = strtok(NULL, p);//是空指针时 printf("%s\n", ret); ret = strtok(NULL, p);//是空指针时 printf("%s\n", ret); //2.以下方法为通用简化版,可切割无限次,并可自己停止(314-321行的简化版) for (ret = strtok(tmp, p); ret != NULL; ret = strtok(NULL, p)) //起始条件,判断条件,下次执行条件 { printf("%s\n", ret); } return 0; }