logo

Teilzeichenfolge in C++

Die Teilzeichenfolgenfunktion wird zum Behandeln von Zeichenfolgenoperationen verwendet geknackt() , append() , usw . Es generiert eine neue Zeichenfolge, deren Wert auf eine Kopie einer Teilzeichenfolge dieses Objekts initialisiert wird. In C++ ist die Header-Datei, die für std::substr(), String-Funktionen erforderlich ist .

Die Teilzeichenfolgenfunktion nimmt zwei Werte an Pos Und nur als Argument und gibt ein neu erstelltes String-Objekt zurück, dessen Wert auf eine Kopie eines Teilstrings dieses Objekts initialisiert ist. Das Kopieren der Zeichenfolge beginnt bei Pos und ist fertig bis post+len bedeutet [pos, pos+len).

Syntax:



string substr (size_t pos, size_t len) const;>

Parameter:

  • Pos: Position des ersten zu kopierenden Zeichens.
  • nur: Länge der Teilzeichenfolge.
  • size_t: Es handelt sich um einen vorzeichenlosen Integraltyp.

Rückgabewert: Es gibt ein String-Objekt zurück.

Beispiel:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s1 = 'Geeks';  // Copy two characters of s1 (starting  // from position 3)  string r = s1.substr(3, 2);  // prints the result  cout << 'String is: ' << r;  return 0; }>

Ausgabe
String is: ks>
  • Zeitkomplexität: AN)
  • Hilfsraum: AN)

Mehr Beispiele:

string: '  h e l l o w o r l d  ' index: 0 1 2 3 4 5 6 7 8 9 10>

wenn wir schreiben: –

  • s.substr(s.begin(),3) => Kompilierungsfehler (da ein Iterator nicht in einen int-Datentyp konvertiert werden kann)
  • s.substr(2,3) => llo (drei Buchstaben aus dem 2. Index)
  • s.substr(*s.begin()-s[0],3) => hel (*s.begin() ist „h“, dann „h“-s[0]=> „h“-„h“=0 bedeutet substr(0,3) —– drei Buchstaben ab dem nullten Index
  • s.substr(5,1) => ‘ ‘ (druckt Leerzeichen, also am 5. Index)
  • s.substr(2,0) => (keine Ausgabe) (wählt null Buchstaben aus dem zweiten Index aus)

Wichtige Punkte, die Sie beachten sollten

  1. Der Index des ersten Zeichens ist 0 (nicht 1).
  2. Wenn Pos gleich der Stringlänge ist, gibt die Funktion einen leeren String zurück.
  3. Wenn Pos größer als die Zeichenfolgenlänge ist, wird out_of_range ausgegeben. In diesem Fall gibt es keine Änderungen in der Zeichenfolge.
  4. Wenn die angeforderte Teilzeichenfolge nur größer als die Größe einer Zeichenfolge ist, dann ist die zurückgegebene Teilzeichenfolge größer [pos, size()) .
  5. Wenn nur nicht als Parameter übergeben wird, wird die zurückgegebene Teilzeichenfolge zurückgegeben [pos, size()).

Anwendungen von Substring

  • Rufen Sie eine Teilzeichenfolge nach einem Zeichen ab
  • Holen Sie sich einen Sub-String vor einem Zeichen
  • Gibt alle Teilstrings eines bestimmten Strings aus
  • Summe aller Teilzeichenfolgen einer Zeichenfolge, die eine Zahl darstellt
  • Gibt den Maximalwert aller Teilzeichenfolgen einer Zeichenfolge aus, die eine Zahl darstellt
  • Gibt den Mindestwert aller Teilzeichenfolgen einer Zeichenfolge aus, die eine Zahl darstellt

Holen Sie sich eine Teilzeichenfolge nach einem Zeichen

Dabei werden eine Zeichenfolge und ein Zeichen angegeben und Sie müssen die Teilzeichenfolge gefolgt von dem angegebenen Zeichen ausgeben.
Extrahieren Sie alles nach dem : in der Zeichenfolge Hund Katze .

Beispiel:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring after pos  string sub = s.substr(pos + 1);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

Ausgabe
String is: cat>

Zeitkomplexität: AN)

Hilfsraum: AN)

Was ist Ausnahmebehandlung in Java?

Wie erhalte ich eine Teilzeichenfolge vor einem Zeichen?

Dabei werden eine Zeichenfolge und ein Zeichen angegeben und Sie müssen die Teilzeichenfolge gefolgt von dem angegebenen Zeichen ausgeben.

Beispiel:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring before pos  // Extract everything before the ':' in the string  // 'dog:cat'.  string sub = s.substr(0, pos);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

Ausgabe
String is: dog>

Zeitkomplexität: AN)

Hilfsraum: AN)

Wie drucke ich alle Teilzeichenfolgen einer bestimmten Zeichenfolge?

Gegeben eine Zeichenfolge als Eingabe. Wir müssen ein Programm schreiben, das alle nicht leeren Teilzeichenfolgen dieser bestimmten Zeichenfolge ausgibt.

Sanjay Dutt und

Beispiel:

C++
// C++ program to demonstrate all possible // substrings of a given string #include  using namespace std; // Function to print all sub strings void subString(string s, int n) {  // Pick starting point in outer loop  // and lengths of different strings for  // a given starting point  for (int i = 0; i < n; i++)  for (int len = 1; len <= n - i; len++)  cout << s.substr(i, len) << endl; } // Driver program to test above function int main() {  string s = 'abcd';  subString(s, s.length());  return 0; }>

Ausgabe
a ab abc abcd b bc bcd c cd d>

Zeitkomplexität: AN3)

Hilfsraum: O(1)

Summe aller Teilzeichenfolgen einer Zeichenfolge drucken, die eine Zahl darstellt

Bei einer als String dargestellten Ganzzahl müssen wir die Summe aller möglichen Teilstrings dieses Strings ermitteln.

Beispiel:

C++
// C++ program to print sum of all possible substring of // a number represented as a string #include  using namespace std; // Utility method to convert character digit to // integer digit int toDigit(char ch) { return (ch - '0'); } // Returns sum of all substring of num int sumOfSubstrings(string s) {  vector v;  int n = s.length();  für (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  int res = accumulate(v.begin(), v.end(), 0);  return res; } // Driver code to test above methods int main() {  string num = '1234';  cout << sumOfSubstrings(num) << endl;  return 0; }>

Ausgabe
1670>

Zeitkomplexität: AN3)
Hilfsraum: AN)

Drucken Sie den Maximalwert aller Teilzeichenfolgen einer Zeichenfolge, die eine Zahl darstellt

Bei einer als String dargestellten Ganzzahl müssen wir das Maximum aller möglichen Teilstrings des gegebenen Strings ermitteln, der eine Zahl darstellt.

Beispiel:

C++
// C++ program to demonstrate max. of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector v;  für (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *max_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '823';  subString(s, s.length());  return 0; }>

Ausgabe
823>

Erläuterung: Alle Teilzeichenfolgen sind { 8, 82, 823, 2, 23, 3 } und der Maximalwert der Teilzeichenfolge ist 823.

Zeitkomplexität: AN3)

Nebenraum: AN!)

Drucken Sie den Mindestwert aller Teilzeichenfolgen einer Zeichenfolge, die eine Zahl darstellt

Bei einer als String dargestellten Ganzzahl müssen wir das Minimum aller möglichen Teilstrings des gegebenen Strings ermitteln, der eine Zahl darstellt.

Beispiel:

C++
// C++ program to demonstrate minimum of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector v;  für (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *min_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '4572';  subString(s, s.length());  return 0; }>

Ausgabe
2>

Zeitkomplexität: AN3)
Nebenraum: AN!)

Andere Anwendungen von Substring

  • Textsuche: Teilzeichenfolgen werden verwendet, um in größeren Textkörpern nach Wörtern oder Phrasen zu suchen. Dies wird häufig in Suchmaschinen verwendet, wo ein Benutzer eine Phrase oder ein Schlüsselwort eingeben kann und die Maschine nach allen Übereinstimmungen sucht, die diese Teilzeichenfolge enthalten.
  • Textanalyse: Teilzeichenfolgen werden in Textanalysealgorithmen verwendet, um größere Zeichenfolgen in kleinere Abschnitte zu zerlegen. Beispielsweise könnte ein Parser verwendet werden, um einzelne Wörter aus einem Satz zu extrahieren und sie in einer Datenstruktur zu speichern.
  • Textmanipulation: Teilzeichenfolgen werden in Textbearbeitungsanwendungen verwendet, um bestimmte Wörter oder Phrasen in größeren Textkörpern zu finden und zu ersetzen. Dies kann zum Durchführen von Such- und Ersetzungsaufgaben oder zum Aktualisieren von Informationen in einem Dokument verwendet werden.
  • Verarbeitung natürlicher Sprache: Teilzeichenfolgen werden in Algorithmen zur Verarbeitung natürlicher Sprache verwendet, um Wörter und Phrasen zu identifizieren. Dies wird in Anwendungen wie der Spracherkennung verwendet, bei denen der Algorithmus die von einem Benutzer gesprochenen Wörter identifizieren muss.
  • Mustererkennung: Teilzeichenfolgen werden in Mustererkennungsalgorithmen verwendet, um Muster in Daten zu identifizieren. Dies kann verwendet werden, um Trends in Finanzdaten zu erkennen oder Anomalien in Bildern zu erkennen.
  • Passwortsicherheit: Teilzeichenfolgen werden zur Überprüfung von Passwörtern verwendet. Dies erfolgt durch den Vergleich des eingegebenen Passworts mit einer gespeicherten Teilzeichenfolge des ursprünglichen Passworts. Wenn beide übereinstimmen, wird das Passwort überprüft. Diese Technik wird in vielen Anwendungen zur Erhöhung der Sicherheit eingesetzt.