gpt4 book ai didi

c - 如何删除C字符串中的单词

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:50 24 4
gpt4 key购买 nike

我目前有一个存储文件名的字符数组。

eg. folder1/subfolder/subsubfolder/file1.txt

我希望能够删除此 char 数组中的第一个文件夹名称。于是就变成了

subfolder/subsubfolder/file1.txt

我知道 basename() 会生成输出 file1.txt,但我需要文件夹结构,而不是第一个。

最好的方法是什么?使用/作为分隔符?

  • 编辑 *好吧,显然我不能在不详细了解我的整个该死的程序的情况下询问 char 数组,哈哈。

我想知道是否有一种简单的方法可以从头开始缩短 char 数组。我正在开发一个文件复制程序,如果我可以通过丢弃第一个文件夹名称来缩短完整文件的位置,那只会让我的生活变得更轻松。说到编程,我完全是个菜鸟,我认为对于这个站点上的向导来说,这可能是一个很容易解决的问题。我没有在我的初始帖子中放置代码,因为我不知道这是否是一个可以满足我要求的功能。所以道歉。但是如果你必须有代码那么这里...

        strcpy(sourcePath, Path); 
strcat(sourcePath, slash);

这显然没有完成我需要它做的事情。

最佳答案

你可以使用strpbrk

const char * strpbrk (const char * str1, const char * str2);

http://en.cppreference.com/w/c/string/byte/strpbrk

它返回一个指针,该指针指向作为 str2 一部分的任何字符在 str1 中的第一次出现,如果没有匹配项,则返回一个空指针。

在你的情况下 str2="/"

// You can use it in the following way
const char* f = strpbrk(pathname, str2);
int sz = strlen(pathname) - strlen(f); // +/- 1.
new_path_name = strncpy(new_path_name, f, sz);

关于c - 如何删除C字符串中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18813534/

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