strtok()
, malloc(), .
str_ptr:
strk_ptr = malloc(sizeof(filename));
malloc() , strk_ptr.
strtok(), , _:
strk_ptr = strtok(filename,".");
, , malloc(), strk_ptr - . free(str_ptr), filename. free(filename) . strk_ptr.
, , strtok. , , , , .
int main(int argc, char **argv) {
char *strk_ptr;
char *filename = malloc(strlen(argv[0]) + 1);
strcpy(filename, argv[0]);
printf("filename = %s, size = %zu\n", filename, sizeof(filename));
strk_ptr = strtok(filename,".");
printf("%s\n", strk_ptr);
while( (strk_ptr = strtok(NULL,".")) )
{
printf("%s\n", strk_ptr);
}
free(filename);
return 0;
}
argv char **, , , , argv [0], .
sizeof(filename) , , _ . strlen(filename) + 1.
strtok (_), , strk_ptr.
strtok :
for (strk_ptr = strtok(filename, "."); strk_ptr; strk_ptr = strtok(NULL, "."))
{
printf("%s\n", strk_ptr);
}