您好,以下是文件的路径(存储为字符串)。
C:/db/OOSA/LIBRARIES/OOSA00/MS/filename.jpg
现在我只想要其中的文件名,例如:“文件名”,其余的应该被过滤或删除。 在 C 中如何做到这一点? 我想将该文件名应用于其他一些内容,但我想避免 .jpg 扩展名和路径“C:/db/OOSA/LIBRARIES/OOSA00/MS/ ” 下面是代码:
static mgbool gbeadNApply (mgrec* db, mgrec* parent, mgrec* rec, void* gBead)
{
toolrec* toolRec = (toolrec*)gBead;
if (mgGetCode(rec) == fltXref);
{
char *xName;
parent = mgGetParent(rec);
mgGetAttList(rec,fltXrefFilename,&xName,MG_NULL);
mgSetName(parent,xName);
}
return MG_TRUE;
}
这里 xName 首先收集包含路径的文件名。在 mgSetName 中,您还可以看到 xName (这里 xName 分配收集的文件名以及路径,例如 C:/db/OOSA/LIBRARIES/OOSA00/MS/filename.jpg。现在的情况是我只想将其文件名部分写入 mgSetName。因此我想为其过滤 xName。
最佳答案
这将非常模糊,但您可能可以弄清楚如何编写一个函数来执行此操作:
- 编写一个函数来查找“.”
- 编写一个函数,以新字符串返回“.”之前的所有内容
- 编写一个函数来查找最后一个“/”(反斜杠?“\”)
- 编写一个函数,删除“/”之前的所有内容(包括“/”)
您将使用for
循环
int find_period(const char *string)
{
if(!string) return -1;
int n;
for(n = 0; n < strlen(string); n++){
if(string[n] == '.') return n;
return -1;
}
然后你可能就明白了。
关于c - 如何在 C 中从字符串中获取特定单词并消除其他单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385638/