Einzelne Stelle in string Variable vergleichen?

...komplette Frage anzeigen

3 Antworten

An deinen anderen Kommentaren sehe ich, dass du wohl von C++ redest. In diesem Falle so:

string s {"eiernudel"};

if (s[3] == 'r') {
cout << "R gefunden! Juhuuu! :)" << endl;
} else {
cout << "Kein R! Schade! :(" << endl;
}

Achte auf jeden Fall darauf, dass der String auch mindestens um eins länger ist, als der angegebene Index! (idx < s.size()) Sonst bekommst du eine Speicherzugriffs-Verletzung um die Ohren gehauen.

Alternativ kannst du auch "s.at(idx)" benutzen, wobei bei ungültigem Index "nur" eine Ausnahme geworfen wird, die man abfangen kann ... wenn man lustig ist. :)

Das geht mit der Methode

String charAt(int stelle)

Ich hoffe, ich konnte dir helfen.

LG Willibergi

otoonormal 17.04.2016, 21:13

Mein Code:

std::string password="123abc";

for(int n=0; n<grenze; n++ {

if(password.compare(n,1,s)==1) {
       std::cout << "find sign" << std::endl;

}

}

aber password.compare liefert beim Durchlauf -1 etc zurück

Findet jemand den Fehler?

Danke

0
maximilianus7 17.04.2016, 22:21
@otoonormal

weil an der position 1 eine 2 steht. 1. position ist 0

du meinst wohl:
if(password.compare(n,1,s)==0) {

0
TeeTier 18.04.2016, 01:55

War am Anfang zwar nicht ersichtlich, aber hier ist wohl nicht nach Java gefragt. :)

0



Mein Code:


std::string password="123abc";


for(int n=0; n<grenze; n++ {


if(password.compare(n,1,s)==1) {
       std::cout << "find sign" << std::endl;


}


}


aber password.compare liefert beim Durchlauf -1 etc zurück


Findet jemand den Fehler?



Die Programmiersprache ist C++




Danke




Was möchtest Du wissen?