我在函数中有一个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 *来解析字符串迭代器?
谢谢..
答案 0 :(得分:16)
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);