在C中的/之前获取字符串的一部分

时间:2019-05-18 07:49:01

标签: c substring strchr

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

我使用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);

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

1 个答案:

答案 0 :(得分:0)

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

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

如果返回值不为NULL,则它指向您要搜索的/

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