【问题标题】:Get part of string(chars) before / in C [duplicate]在C之前/之前获取部分字符串(chars)[重复]
【发布时间】:2019-10-05 09:52:24
【问题描述】:

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

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

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

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

我想在 dir/filename.txt 中去掉“/”之前的第一部分,我想得到 dir。我检查了执行此操作的任何功能,但找不到。

问题解决了。 当使用

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

它返回 / 之前的第一部分。

【问题讨论】:

    标签: c substring strchr


    【解决方案1】:

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

    如果您想要最后一个/,请勾选反面。
    https://en.cppreference.com/w/c/string/byte/strrchr

    如果返回值不是 NULL,则它指向您正在搜索的内容,/

    如果您在输入字符串的非常量副本上使用它(例如,通过 https://en.cppreference.com/w/c/string/byte/strncpy 填充的 char 数组),那么您可以将其替换为 \0 以在该点终止字符串。结果是一个在第一个(或最后一个)/ 之前结束的字符串。

    【讨论】:

    • 好的有用的链接,我必须阅读那些。
    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 2021-02-03
    • 2021-11-19
    • 1970-01-01
    • 2016-09-05
    • 2015-12-11
    • 2016-08-24
    • 2014-09-19
    相关资源
    最近更新 更多