在 C 之前/中获取部分字符串(字符)

Get part of string(chars) before / in C

如果输入中提供了“/”,我想从用户输入中获取字符串的一部分。

我使用 strchr() 函数来检查“/”。 我的实际问题是能够在 / 之前获取第一个字符串 dir/filename.txt,我想从提供的字符串(字符数组)中获取目录。

创建文件夹不是问题,因为 mkdir() 会帮助我实现它。问题是关于获取字符串的一部分,这是我提到全局问题的原因,即使用该字符串创建文件夹。

char filename = "dir/file.txt";
if(strchr(filename, '/') !=NULL)
{
   //slash found
}

我想删除“/”之前的第一部分,如 dir/filename.txt 我想获取目录。我检查了执行此操作的任何函数,但找不到。

问题已解决。 当使用

找到斜杠时,我能够检查用户的输入并创建一个目录
basename(user's input);

它是 returns / 之前的第一部分。

继续阅读 strchr(),例如这里
https://en.cppreference.com/w/c/string/byte/strchr

如果你想要最后一个 /
https://en.cppreference.com/w/c/string/byte/strrchr

如果 return 值不为 NULL,则它指向您要搜索的内容,即 /

如果您在输入字符串的 non-const 副本上使用它(例如,通过 https://en.cppreference.com/w/c/string/byte/strncpy 填充的字符数组),则可以将其替换为 [=13=] 以终止字符串在那时候。结果是一个在第一个(或最后一个)/.

之前结束的字符串