Ich bin in den Anfängen des Lernens von C++ und ich frage mich, ob es eine Möglichkeit gibt zu behaupten, dass eine Teilzeichenfolge aus einem String mit einem Bereich erstellt werden kann. Meine Zeichenfolge variiert in jeder Iteration. Ich versuche, sechs Teilstrings aus diesem ursprünglichen String zu erstellen. Mit dieser Größenvariation versuche ich manchmal auf Indizes der Zeichenfolge zuzugreifen, die für diese bestimmte Iteration nicht existieren.Initial Überprüfen Sie, ob ein Substring innerhalb des Bereichs
Zum Beispiel, wenn mein String in Iteration 1 11 Zeichen Meine erste Teilkette aus 3 Zeichen ist - gültig Meine zweite Teilkette ist die nächsten drei Zeichen - gültig Meine dritte Teilkette die nächsten 5 Zeichen sind - gültig My vierte Teilkette ist die nächsten 4 Zeichen - nicht gültig - Abstürze Programm Meine fünfte Teilkette - nicht gültig, außer Reichweite Meine sechste Teilkette - nicht gültig, außer Reichweite
ich frage mich, ob es ein kleiner Scheck ist, kann ich tun, um die Länge geltend zu machen, ist gültig. Ich nehme an, dass ich für diese Teilstrings keine Standardwerte festgelegt habe. Sie werden erklärt, wie:
String subS1 String subS2 String subS3 ... ... String subS6
würde alle sechs Teile Einstellung dieses Problem auf null bei der Deklaration lindern und für jede gültige Teilzeichenfolge, der Wert wird nur überschrieben?
Vielen Dank im Voraus
subS1 = str.substr(0, 3); // Could be valid range
subS2 = str.substr(3, 3); // Could be valid range
subS3 = str.substr(6, 5); // Could be valid range
subS4 = str.substr(11, 4); // Could be valid range
subS5 = str.substr(15, 4); // Could be valid range
subS6 = str.substr(19); // from the nineteenth character to the end
Klingt wie Sie haben Beispielcode.Siehe [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (https://stackoverflow.com/help/mcve). – InternetAussie
Ich habe ein paar Zeilen hinzugefügt, wie ich die Teilstrings mache. – esmith08734
check string size vor Aufruf 'strstr (index, size)' wie 'subs1 = str.size()> 0? strstr (0, 3): ""; " –