Мне нужно перебрать строку и сравнить каждый символ в этой строке с определенным символом, например, «M».std::string::find
не будет работать для меня, поскольку порядок, в котором символы появляются в строке, имеет значение (например, римскими цифрами MC отличается от CM).
Код, который я получил (я компилируюс c ++ 11):
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
string str = ("Test Mstring");
for (auto it = str.begin(); it < str.end(); it++) {
if (strcmp(*it, "M") == 0) cout << "M!1!!1!" << endl;
}
}
Отображение ошибки консоли:
test.cc: In function ‘int main()’:
test.cc:10:16: error: invalid conversion from ‘char’ to ‘const char*’ [-fpermissive]
if (strcmp(*it, "M") == 0) cout << "M!1!!1!" << endl;
^~~
In file included from /usr/include/c++/7/cstring:42:0,
from test.cc:2:
/usr/include/string.h:136:12: note: initializing argument 1 of ‘int strcmp(const char*, const char*)’
extern int strcmp (const char *__s1, const char *__s2)