La funzione sottostringa viene utilizzata per gestire operazioni sulle stringhe come rotto() , aggiungere() , eccetera . Genera una nuova stringa con il suo valore inizializzato su una copia di una sottostringa di questo oggetto. In C++, il file di intestazione richiesto per std::substr(), le funzioni stringa sono .
La funzione sottostringa accetta due valori pos E soltanto come argomento e restituisce un oggetto stringa appena costruito con il suo valore inizializzato su una copia di una sottostringa di questo oggetto. La copia della stringa inizia da pos ed è fatto fino a post+len significa [pos, pos+len).
Sintassi:
string substr (size_t pos, size_t len) const;>
parametri:
javascript per il menu a discesa
- posizione: Posizione del primo carattere da copiare.
- soltanto: Lunghezza della sottostringa.
- taglia_t: È un tipo integrale senza segno.
Valore di ritorno: Restituisce un oggetto stringa.
Esempio:
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; }> Produzione
String is: ks>
- Complessità temporale: SU)
- Spazio ausiliario: SU)
Altri esempi:
string: ' h e l l o w o r l d ' index: 0 1 2 3 4 5 6 7 8 9 10>
se scriviamo: –
- s.substr(s.begin(),3) => errore di compilazione (perché non è possibile convertire un iteratore in un tipo di dati int)
- s.substr(2,3) => llo (tre lettere dal 2° indice)
- s.substr(*s.begin()-s[0],3) => hel (*s.begin() è 'h' quindi 'h'-s[0]=> 'h'-'h'=0 significa substr(0,3) —– tre lettere dall'indice zero
- s.substr(5,1) => ‘ ‘ (stampa uno spazio vuoto, cioè al 5° indice)
- s.substr(2,0) => (non emesso) (seleziona zero lettere dal secondo indice)
Punti importanti da ricordare
- L'indice del primo carattere è 0 (non 1).
- Se pos è uguale alla lunghezza della stringa, la funzione restituisce una stringa vuota.
- Se pos è maggiore della lunghezza della stringa, genera out_of_range. Se ciò accade, non ci sono modifiche nella stringa.
- Se la sottostringa richiesta soltanto è maggiore della dimensione di una stringa, la sottostringa restituita sarà [posizione, dimensione()) .
- Se soltanto non viene passato come parametro, la sottostringa restituita lo è [pos, dimensione()).
Applicazioni della sottostringa
- Ottieni una sottostringa dopo un carattere
- Ottieni una sottostringa prima di un carattere
- Stampa tutte le sottostringhe di una determinata stringa
- Somma di tutte le sottostringhe di una stringa che rappresenta un numero
- Stampa il valore massimo di tutte le sottostringhe di una stringa che rappresenta un numero
- Stampa il valore minimo di tutte le sottostringhe di una stringa che rappresenta un numero
Ottieni una sottostringa dopo un carattere
In questo vengono forniti una stringa e un carattere e devi stampare la sottostringa seguita dal carattere specificato.
Estrai tutto dopo il : nella corda cane gatto .
Esempio:
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; }> Produzione
String is: cat>
Complessità temporale: SU)
Spazio ausiliario: SU)
stringa comparabile
Come ottenere una sottostringa prima di un carattere?
In questo vengono forniti una stringa e un carattere e devi stampare la sottostringa seguita dal carattere specificato.
Esempio:
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; }> Produzione
String is: dog>
Complessità temporale: SU)
css per centrare un'immagine
Spazio ausiliario: SU)
Come stampare tutte le sottostringhe di una determinata stringa?
Data una stringa come input. Dobbiamo scrivere un programma che stampi tutte le sottostringhe non vuote di quella determinata stringa.
Esempio:
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; }> Produzione
a ab abc abcd b bc bcd c cd d>
Complessità temporale: SU3)
Spazio ausiliario: O(1)
Stampa la somma di tutte le sottostringhe di una stringa che rappresenta un numero
Dato un intero rappresentato come una stringa, dobbiamo ottenere la somma di tutte le possibili sottostringhe di questa stringa.
Esempio:
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.lunghezza(); for (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; }> Produzione
1670>
Complessità temporale: SU3)
Spazio ausiliario: SU)
Stampa il valore massimo di tutte le sottostringhe di una stringa che rappresenta un numero
Dato un intero rappresentato come una stringa, dobbiamo ottenere il massimo di tutte le possibili sottostringhe della stringa data che rappresenta un numero.
stringa.valoredi
Esempio:
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; for (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; }> Produzione
823>
Spiegazione: Tutte le sottostringhe sono { 8, 82, 823, 2, 23, 3 } e la sottostringa con valore massimo è 823.
Complessità temporale: SU3)
Spazio ausiliario: SU!)
Stampa il valore minimo di tutte le sottostringhe di una stringa che rappresenta un numero
Dato un intero rappresentato come una stringa, dobbiamo ottenere il minimo di tutte le possibili sottostringhe della stringa data che rappresenta un numero.
Esempio:
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; for (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; }> Produzione
2>
Complessità temporale: SU3)
Spazio ausiliario: SU!)
Altre applicazioni della sottostringa
- Ricerca di testo: Le sottostringhe vengono utilizzate per cercare parole o frasi in corpi di testo più grandi. Questo è comunemente usato nei motori di ricerca, dove un utente può digitare una frase o una parola chiave e il motore cercherà qualsiasi corrispondenza contenente quella sottostringa.
- Analisi del testo: Le sottostringhe vengono utilizzate negli algoritmi di analisi del testo per suddividere stringhe più grandi in blocchi più piccoli. Ad esempio, un parser potrebbe essere utilizzato per estrarre singole parole da una frase e memorizzarle in una struttura dati.
- Manipolazione del testo: Le sottostringhe vengono utilizzate nelle applicazioni di manipolazione del testo per trovare e sostituire determinate parole o frasi in corpi di testo più grandi. Può essere utilizzato per eseguire attività di ricerca e sostituzione o per aggiornare le informazioni in un documento.
- Elaborazione del linguaggio naturale: Le sottostringhe vengono utilizzate negli algoritmi di elaborazione del linguaggio naturale per identificare parole e frasi. Viene utilizzato in applicazioni come il riconoscimento vocale, in cui l'algoritmo deve identificare le parole pronunciate da un utente.
- Riconoscimento dei modelli: Le sottostringhe vengono utilizzate negli algoritmi di riconoscimento dei modelli per identificare i modelli nei dati. Questo può essere utilizzato per identificare le tendenze nei dati finanziari o per rilevare anomalie nelle immagini.
- Sicurezza della password: Le sottostringhe vengono utilizzate per verificare le password. Questo viene fatto confrontando la password inserita con una sottostringa memorizzata della password originale. Se i due corrispondono, la password viene verificata. Questa tecnica viene utilizzata in molte applicazioni per aumentare la sicurezza.