【发布时间】:2018-10-16 04:22:48
【问题描述】:
假设我有以下看起来像文件路径的字符串:
char *filepath = "this/is/my/path/to/file.jpg";
我可以使用strrchr()提取file.jpg如下:
char *filename = strrchr(filepath, '/') + 1;
现在我需要提取并存储字符串this/is/my/path/to 的其余部分。我如何以最有效的方式做到这一点?请注意,我想避免使用strtok()或regex或大的迭代循环。
如果:
我可以将相同的子字符串提取技术应用于strchr(),其中我使用strchr(filepath, '/') 提取了子字符串this,现在我需要提取其余的子字符串is/my/path/to/file.jpg
【问题讨论】:
-
只需将第一个(文件名 - 文件路径)字符复制到新位置并附加一个 空字符。
'/'分隔符需要一些额外的工作,如果找到的话。然而,这篇文章的细节太不清楚了。发布您尝试执行的操作。注意"this/is/my/path/to/file.jpg"中的转义序列。 -
@chux:我想使用
filename和filepath变量将其余的子字符串存储在directory_path中,这样如果我执行printf("%s\n", directory_path),则输出为this/is/my/path/to.你能告诉我你如何编码“将第一个(文件名 - 文件路径)字符复制到新位置”吗?