Hallo,
ich habe in einem string (var1) ein Wort gespeichert. In einem
weitern string (var2) ist ein Buchstabe gespeichert. Jetzt
soll überprüft werden, ob der in var2 gespeicherte Buchstabe
in dem Wort (von var1) vorkommt.
ich habe es schon so versucht:
if(var1==var2)
funktioniert aber logischerweise nicht. Jetzt habe ich mir
überlegt, einfach Platzhalter einzusetzen.
if(var1==*var2*)
Funktioniert aber auch nicht, da das * bei C++ kein
Platzhalter ist.
Was muss ich jetzt als Platzhalter verwenden? Gut wäre es,
wenn der Platzhalter sich so verhält, wie das * in der
Eingabeaufforderung unter Win.
In Ergänzung zu re-G’s Anmerkung könntest Du sog.
„Reguläre Ausdrücke“ verwenden. Das ist zwar nicht
exakt so wie in der Eingabeaufforderung - aber dafür
besser.
Ein Ausdruck für „Y“ in „blabla blaba Y blabla“
wäre „.*Y.*“, also „.*“ statt „*“ mit einer etwas
anderen Bedeutung. Wenn man aber nur einen Buchstaben
ohne weitere Bedinguneg sucht, kann man diesen ‚as is‘
verwenden:
#include
#include
using namespace std;
using namespace boost;
int main()
{
char var1[] = "Das ist ein Text mit Y drin.";
char var2[] = "Y";
if( regex\_search(var1, regex(var2)) ) { // "Y" _as is_
cout
> Hat jemand eine Idee???
s.o.
Um das zum Laufen zu bekommen, müßtest
Du entweder Boost::Regex
http://www.boost.org/doc/libs/1\_36\_0/libs/regex/doc/html/index.html
http://www.boostpro.com/products/free
Oder die moderne -Erweiterung aus dem TR1
einbinden (http://en.wikipedia.org/wiki/Technical\_Report\_1#Regular\_Expressions)
Das klappt sogar bei Dev-C++ ohne Probleme.
http://www.bloodshed.net/dev/devcpp.html
(http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2\_setup.exe)
Grüße
CMБ