경로에서 파일을 가져 오려고합니다.strtok()를 사용하여 경로를 구분합니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char split_path(char *path){
char *str1, *delim;
char buf[255];
int i, max;
char *token = "/";
for (i = 1, str1 = path; ; i++, str1 = NULL){
delim = strtok(str1, token);
if (delim == NULL){
break;
}
buf[i] = *delim;
max = i;
}
char last = buf[max];
return last;
}
int main(int argc, char *argv[]){
if (argc != 3){
fprintf(stderr, "Usage: %s string delim\n", argv[0]);
exit(EXIT_FAILURE);
}
char last = split_path(argv[1]);
printf("%c\n", last);
return 0;
}
내가/A/B/C/D의 입력을 입력하면 그래서, 내가 원하는 무엇 인 'D'를 반환 이 내 코드입니다. 그러나 /a/b/c/d.txt의 입력을 입력하면 '.txt'없이 'd'만 반환됩니다. 필요한 경우 'd.txt'가 필요합니다. 마지막/뒤에 첫 번째 인덱스 만 나타나는 것 같습니다. 나는 그 문제를 알아낼 수 없다. 많은 도움을 주셨습니다.
은'기본 이름을하려고()'. 직접하고 싶다면'strtok()'대신'strrchr()'을 사용하십시오. – JS1