prüfen, ob ein Char in einem Char-Array vorhanden ist
-
Hallo zusammen,
ich suche eine elegante Möglichkeit zu prüfen, ob der Wert einer Char-Variable in einem Char-Array enthalten ist.
Genau genommen ist das Ziel, ein weiteres Char-Arry zu durchlaufen, und für jedes Element dieses Arrays zu prüfen ob es zu einer von mir definierten Gruppe gehörtEin kurzes Beispiel:
Ich habe ein Gruppe definiert: Char-Array mit Vokalen
Nun möchte missen, ob eine best. Char-Variable dazu passt oder nicht.In einem Codebeispiel habe ich so etwas gesehen:
char[] value0Chars = new[] { 'A', 'E', 'I', 'J', 'O', 'U', 'Y', 'Ä', 'Ö', 'Ü' }; ... if (value0Chars.Contains(currentChar)) { ... }
Aber ich glaube das Codebeispiel ist C#, und das hilft mir nicht.
(value0Chars.Contains(currentChar)) erzeugt bei mir einen Syntaxfehler:
"value0Chars[7] Error: Expression must have Class Type"
Kennt jemand bei C++ eine ähnlich elegante Möglichkeit, oder muss ich eine Schleife programmieren um value0Chars zu durchlaufen und jedes Element zu prüfen?MfG
Andreas
-
hier findest du eventuell eine Funktion:
-
Du musst das mit einer Schleife lösen.
Alternativ könntest du natürlich auch sowas machen:
std::map<char, bool> m; m.insert(std::make_pair('a', true)); m.insert(std::make_pair('e', true)); m.insert(std::make_pair('i', true)); m.insert(std::make_pair('o', true)); m.insert(std::make_pair('u', true)); if (m.find('a') != m.end()) { std::cout << "Vorhanden!" << std::endl; }
Ist vielleicht auch etwas mit Kanonen auf Spatzen geschossen, aber zumindest ist das so möglich.
-
std::tr1::array<char, 10> value0Chars = { 'A', 'E', 'I', 'J', 'O', 'U', 'Y', 'Ä', 'Ö', 'Ü' }; if (std::find(value0Chars.begin(), value0Chars.end(), curChar) != value0Chars.end()) // treffer
std::vector value0Chars; // ... std::sort(value0Chars.begin(), value0Chars.end()); if (std::binary_search(value0Chars.begin(), value0Chars.end(), curChar) // treffer
std::string value0Chars = "AEIJOUY"; if (value0Chars.find(curChar) != std::string::npos) // treffer
-
missing template arguments before `value0Chars' at
std::vector value0Chars;
-
3x warning: multi-character character constant
3x warning: overflow in implicit constant conversion
at 1xstd::tr1::array<char, 10> value0Chars = { 'A', 'E', 'I', 'J', 'O', 'U', 'Y', 'Ä', 'Ö', 'Ü' };
Fix:
std::tr1::array<wchar_t, 10> value0Chars = { 'A', 'E', 'I', 'J', 'O', 'U', 'Y', L'Ä', L'Ö', L'Ü' };