ich diesen FehlerDereferenzierung String Iterator Erträge int
comparison between pointer and integer ('int' and 'const char *')
Für den folgenden Code
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
std::string s("test string");
for(auto i = s.begin(); i != s.end(); ++i)
{
cout << ((*i) != "s") << endl;
}
}
Warum dereferencing der String Iterator eine int
und nicht std::string
ergeben?
Sie sollten schreiben 'cout << ((* i)! = 'S') << endl;' (beachten Sie die einfachen Anführungszeichen). –
Sie vergleichen ein Zeichen ('* i') mit einem Zeiger auf eine Zeichenfolge (' "s" '). Das kann nicht funktionieren. –
Wenn Sie schon 'auto' verwenden, verwenden Sie bitte Range-for wie in' for (auto const & c: s) {cout << (c! = 'S') << '\ n'; } '? (Beachten Sie, dass Sie selten "endl" und am häufigsten '\ n' verwenden möchten) – TemplateRex