Hi, When strtok is used and it doesn't find the delimiter when strtok is used the FIRST time, it should return a null. But this doesn't seems to be the behavior. Pl refer to this code - Code: char* szInputStr = "string to split up"; char *copy = NULL; /* Copy the szInputStr to Copy */ len = strlen(szInputStr); copy = (char *)malloc(len+1); strcpy(copy, szInputStr); /* Do strtok */ result = strtok(copy, "~"); if(result == NULL) printf("result is NULL \n"); else printf("result is NOT null \n"); The above code should return NULL - right? Please confirm. Actually the value is same as the original string - "string to split up". The above code prints - "result is NOT null"
No, it should not. Strtok returns a NULL when no more tokens are found. On the first call it found "string to split up". The return will be a pointer to that token, which happens to be the entire input string. Do yourself a favor: read the documentations for the things you use. Do us a favor: learn to use the code tags like a big boy. Quit forcing the task on Shabbir.