C等价的std :: find

时间:2015-06-05 01:50:33

标签: c

我正在尝试在我的C应用程序中实现C ++ 11 std::find()。我在线查看并找到了这个参考:std::find in C++

我的问题是,如何在C中使用string.end()string.begin()?基本上我如何使用为std::find()提供的纯C函数?

所以,如果我这样做:

std::string myString = "hello\n\n";
pos = myString.find("\n\n");

我希望C中有类似的内容。我该怎么做?

1 个答案:

答案 0 :(得分:3)

C具有函数strstr,它在一个字符串中搜索另一个字符串,并在找到时返回指向第一个字符的指针。如果子串不出现,则返回NULL指针

const char *my_string = "hello\n\n";
const char *nl = strstr(my_string, "\n\n");
size_t index = -1;
// now subtract the difference to get the index of the substring
if (nl != NULL) {
    index = nl - my_string;
}