比较字符串迭代器和字符指针

时间:2010-01-13 16:17:33

标签: c++

我在函数中有一个const char * const字符串。 我想用它来比较字符串中的元素。

我想遍历字符串,然后与char *进行比较。

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main()
{

  const char * const pc = "ABC";
  string s = "Test ABC Strings";

  string::iterator i;

  for (i = s.begin(); i != s.end(); ++i)
  {
    if ((*i).compare(pc) == 0)
    {
      cout << "found" << endl;
    }
  }

如何解析char *来解析字符串迭代器?

谢谢..

3 个答案:

答案 0 :(得分:16)

查看std::string::find

const char* bar = "bar";
std::string s = "foo bar";

if (s.find(bar) != std::string::npos)
    cout << "found!";

答案 1 :(得分:7)

std::string::iterator it;
char* c;
if (&*it == c)

取消引用迭代器会产生对指向对象的引用。所以取消引用会给你一个指向对象的指针。

修改
当然,这不是很相关,因为更好的方法是完全放弃比较,并依赖已经存在的find函数来做你想做的事。

答案 2 :(得分:1)

不完全是您问题的答案,但看起来您使用std::string::find方法可能会更好。

类似的东西:

const char * const pc = "ABC";
string s = "Test ABC Strings";
size_t pos = s.find(pc);