Как разобрать UNC-путь в C ++ - PullRequest
       21

Как разобрать UNC-путь в C ++

0 голосов
/ 15 октября 2018

Я сейчас работаю с каталогами.Я хотел бы проанализировать UNC-путь, например:

// server_IP / ws1 / dir2 / dir3 / dir4 / file.xyz

и получить имена каталогов и файловвот так ws1, dir2, dir3, dir4, file.xyz?Я не хочу использовать std::string.Вместо этого мой UNC-путь - char[].Может ли кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 15 октября 2018

Ограничение 'нельзя использовать std :: string' звучит как домашнее задание, но я продолжу и приведу некрасивый код:

#include <stdio.h>

int main()
{
char unc_path[80] = "//server/ws/dir/file.abc";
char token[80] = "";
char *p = unc_path;
char *t = token;
while(*p)
{
   if(*p == '/' && *token != '\0')
   {
      *t = '\0'; /* tie off the end of string */
      fprintf(stdout, "%s\n", token);
      t = token;
      *t = '\0';
   }
   else
   {
      *t = *p;
      t++;
   }
   p++;
}
*t = '\0';
if(*token != '/0')
   fprintf(stdout, "%s\n", token);
return 0;
}

Это прямой C, непроверенный код.Используйте на свой риск.Я уверен, что это можно немного почистить, но это упражнение для пользователя.Этот тип делает то, что делает strtok (), не стесняйтесь искать это на cppreference.com.

...