我不知道是否有这样的函数,所以手工实现了一个,也许有待改进:
#include
#include
int main()
{
char testArr[] = "E:\\src\\write\\ABC";
char *tempP;
char filePath[1024] = "";
char fileName[100] = "";
int i, pathSize;
int divisionAddr;
tempP = strtok(testArr, "\\");
memcpy(filePath, tempP, sizeof(filePath));
strncat(filePath, "\\", sizeof(filePath));
while ((tempP = strtok(NULL, "\\")) != NULL)
{
strncat(filePath, tempP, sizeof(filePath));
strncat(filePath, "\\", sizeof(filePath));
memcpy(fileName, tempP, sizeof(fileName));
}
pathSize = strlen(filePath);
for (i = 0; i < pathSize; i++)
{
if (filePath[i] == '\\')
{
divisionAddr = i;
}
}
filePath[divisionAddr] = '\0';
for (i = 0; i < pathSize; i++)
{
if (filePath[i] == '\\')
{
divisionAddr = i;
}
}
filePath[divisionAddr] = '\0';
printf("%s\n", filePath);
return 0;
}