Suche std :: string zwischen einem Limit

8

Wenn Sie die Start- und Endpositionen in der Zeichenfolge kennen, von wo aus Sie beginnen und die Suche beenden möchten. Zum Beispiel -

%Vor%

Wie finden Sie "tr" in der Zeichenfolge, die angibt, dass die Position, um die Suche zu beginnen, bei Index 6 ist und die Position, um die Suche zu beenden, Index 9 ist.

Ich versuche ein Limit für die Suche festzulegen, damit es nicht darüber hinaus geht.

    
cpx 06.03.2010, 21:30
quelle

3 Antworten

4

Wenn Sie wirklich die Länge der Sequenz begrenzen wollen, die durchlaufen wird (vermutlich weil die Zeichenfolge im Vergleich zur interessanten Region sehr lang ist), verwenden Sie std::search und gebe die entsprechenden Iteratoren in die Zeichenfolge ein.

    
avakar 06.03.2010, 21:37
quelle
1

Geben Sie start als Position an, an der Sie suchen möchten, und stop als Position, an der Sie die Suche beenden möchten:

%Vor%

Dies setzt voraus, dass das, was Sie als stop angeben, die letzte Position ist, an der eine Übereinstimmung beginnen kann. Wenn Sie beispielsweise einen Teilstring mit vier Zeichen Länge abgleichen möchten, kann er sich bis zu drei Zeichen nach der Position stop erstrecken. Wenn Sie sicherstellen möchten, dass das Ende des Teilstrings vor dem Stopppunkt liegt, subtrahieren Sie die Länge des Teilstrings von stop , wenn Sie mit pos

vergleichen     
Jerry Coffin 06.03.2010 21:35
quelle
-1

Ja, Sie können das mit string :: find machen.

%Vor%     
Bertrand Marron 06.03.2010 21:34
quelle

Tags und Links