Hello guys,
I have the following task to do:
given a string (char * buf) in a specific way ("putfile $[path of file]") I want to extract the filename out of the filepath with a function called extract_name.
Here's the code:
Now, my problem is, that I get no filename back. It's just empty.Code:char* extract_name(char* buf){ int length = strlen(buf)-1; int count = -1; int i = 0; char * fname; char c; for(i = length; i>=0; i--){ //go backwards through string to gain knowledge of filename length c = buf[length]; if((c == '/') || (c == '\\') || (c == '$')){ //either of these chars show me I have reached the //beginning of my filename, so I leave the loop break; } count++; length--; } fname = (char*)calloc(count+1, sizeof(char)); //allocate free space fname[count+1] = '\0'; //put string termination symbol length = strlen(buf)-1; //reset length for(i = count; i>=0; i--){ //go backwards through string fname[i] = buf[length]; //and set the characters accordingly i--; length--; } return fname; //return pointer to name }
Maybe you need to see this part of code too?
Anyone can tell me where exactly my error is? Or should I do it in a different way alltogether?Code:char *name; name = extract_name(message); path = (char*)calloc(10 + strlen(act_user->username) + strlen(name), sizeof(char)); sprintf(path, "./uploads/%s/%s",act_user->username,name); //create path-string



LinkBack URL
About LinkBacks



.
