gpt4 book ai didi

c - 如何在 C 中将目录拼接到包含路径名的 char * 中?

转载 作者:行者123 更新时间:2023-11-30 17:35:54 25 4
gpt4 key购买 nike

所以现在我正在尝试将目录名拼接到路径名的中间。

例如,假设我想在路径中出现 OTHERDIRNAME 的位置之后拼接 DIRNAME。例如,假设路径是:

/home/user/folder/OTHERDIRNAME/morefolders/test/etc

我的目标是获得一个如下所示的新路径名:

/home/user/folder/OTHERDIRNAME/DIRNAME/morefolders/test/etc

顺便说一句,我有用于保存旧路径名和我想要将新目录拼接到的目录名的变量。所以我只需要帮助使用 C 中的 str 函数来尝试将 DIRNAME 实际拼接到正确的位置。我尝试过使用 strtok,但使用 OTHERDIRNAME 作为分隔符似乎遇到了问题,因为我认为分隔符参数必须是单个字符...

最佳答案

#include <stdio.h>
#include <string.h>
int main()
{
char str[128] = "/home/user/folder/OTHERDIRNAME/morefolders/test/etc";
char* delim = "/";
char* tok;
char buf[128];

tok = strtok(str,delim);
strcpy(buf,"/");
while(tok)
{
strcat(buf,tok);
strcat(buf,"/");
if(strcmp(tok,"OTHERDIRNAME") == 0)
{
strcat(buf,"DIRNAME");
strcat(buf,"/");
}

tok = strtok(NULL,delim);
}

printf("Dir path: %s\n", buf);
}

输出

Dir path: /home/user/folder/OTHERDIRNAME/DIRNAME/morefolders/test/etc/

关于c - 如何在 C 中将目录拼接到包含路径名的 char * 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22853229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com