我正在尝试在我的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中有类似的内容。我该怎么做?
答案 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;
}