La función de subcadena se utiliza para manejar operaciones de cadena como tira() , adjuntar() , etc . Genera una nueva cadena con su valor inicializado en una copia de una subcadena de este objeto. En C++, el archivo de encabezado que se requiere para las funciones de cadena std::substr() es .
La función de subcadena toma dos valores. posición y solo como argumento y devuelve un objeto de cadena recién construido con su valor inicializado en una copia de una subcadena de este objeto. La copia de la cadena comienza desde posición y se hace hasta post+len significa [pos, pos+len).
Sintaxis:
formateador de cadenas
string substr (size_t pos, size_t len) const;>
Parámetros:
- pos: Posición del primer carácter a copiar.
- solo: Longitud de la subcadena.
- tamaño_t: Es un tipo integral sin signo.
Valor de retorno: Devuelve un objeto de cadena.
Ejemplo:
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; }> Producción
String is: ks>
- Complejidad del tiempo: EN)
- Espacio Auxiliar: EN)
Más ejemplos:
string: ' h e l l o w o r l d ' index: 0 1 2 3 4 5 6 7 8 9 10>
si escribimos: –
- s.substr(s.begin(),3) => error de compilación (porque no se puede convertir un iterador a un tipo de datos int)
- s.substr(2,3) => llo (tres letras del segundo índice)
- s.substr(*s.begin()-s[0],3) => hel (*s.begin() es 'h' y luego 'h'-s[0]=> 'h'-'h'=0 significa substr(0,3) —– tres letras del índice cero
- s.substr(5,1) => ' ' (imprime un espacio en blanco, es decir, en el quinto índice)
- s.substr(2,0) => (sin salida) (selecciona cero letras del segundo índice)
Puntos importantes para recordar
- El índice del primer carácter es 0 (no 1).
- Si posición es igual a la longitud de la cadena, la función devuelve una cadena vacía.
- Si posición es mayor que la longitud de la cadena, arroja fuera del rango. Si esto sucede, no hay cambios en la cadena.
- Si la subcadena solicitada solo es mayor que el tamaño de una cadena, entonces la subcadena devuelta es [pos, tamaño()) .
- Si solo no se pasa como parámetro, entonces la subcadena devuelta es [pos, tamaño()).
Aplicaciones de subcadena
- Obtener una subcadena después de un personaje
- Obtener una subcadena antes de un personaje
- Imprime todas las subcadenas de una cadena determinada
- Suma de todas las subcadenas de una cadena que representa un número
- Imprime el valor máximo de todas las subcadenas de una cadena que representa un número
- Imprime el valor mínimo de todas las subcadenas de una cadena que representa un número
Obtener una subcadena después de un personaje
En esto, se proporcionan una cadena y un carácter y debe imprimir la subcadena seguida del carácter dado.
Extrae todo después del : en la cuerda perro gato .
Ejemplo:
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; }> Producción
String is: cat>
Complejidad del tiempo: EN)
Espacio Auxiliar: EN)
vlc descargar videos de youtube
¿Cómo obtener una subcadena antes de un carácter?
En esto, se proporcionan una cadena y un carácter y debe imprimir la subcadena seguida del carácter dado.
Ejemplo:
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; }> Producción
String is: dog>
Complejidad del tiempo: EN)
Espacio Auxiliar: EN)
¿Cómo imprimir todas las subcadenas de una cadena determinada?
Dada una cadena como entrada. Necesitamos escribir un programa que imprima todas las subcadenas no vacías de esa cadena dada.
Ejemplo:
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; }> Producción
a ab abc abcd b bc bcd c cd d>
Complejidad del tiempo: EN3)
Espacio Auxiliar: O(1)
Imprimir la suma de todas las subcadenas de una cadena que representa un número
Dado un número entero representado como una cadena, necesitamos obtener la suma de todas las subcadenas posibles de esta cadena.
Ejemplo:
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.longitud(); para (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; }> Producción
1670>
Complejidad del tiempo: EN3)
Espacio Auxiliar: EN)
Imprima el valor máximo de todas las subcadenas de una cadena que representa un número
Dado un número entero representado como una cadena, necesitamos obtener el máximo de todas las subcadenas posibles de la cadena dada que representa un número.
Ejemplo:
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; para (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; }> Producción
823>
Explicación: Todas las subcadenas son {8, 82, 823, 2, 23, 3} y la subcadena de valor máximo es 823.
Complejidad del tiempo: EN3)
Espacio auxiliar: ¡EN!)
Imprima el valor mínimo de todas las subcadenas de una cadena que representa un número
Dado un número entero representado como una cadena, necesitamos obtener el mínimo de todas las subcadenas posibles de la cadena dada que representa un número.
Ejemplo:
lanzar int a cadenaC++
// 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; para (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; }> Producción
2>
Complejidad del tiempo: EN3)
Espacio auxiliar: ¡EN!)
Otras aplicaciones de subcadena
- Búsqueda de texto: Las subcadenas se utilizan para buscar palabras o frases en cuerpos de texto más grandes. Esto se usa comúnmente en motores de búsqueda, donde un usuario puede escribir una frase o palabra clave y el motor buscará cualquier coincidencia que contenga esa subcadena.
- Análisis de texto: Las subcadenas se utilizan en algoritmos de análisis de texto para dividir cadenas más grandes en fragmentos más pequeños. Por ejemplo, se podría utilizar un analizador para extraer palabras individuales de una oración y almacenarlas en una estructura de datos.
- Manipulación de texto: Las subcadenas se utilizan en aplicaciones de manipulación de texto para buscar y reemplazar ciertas palabras o frases en cuerpos de texto más grandes. Esto se puede utilizar para realizar tareas de búsqueda y reemplazo, o para actualizar información en un documento.
- Procesamiento natural del lenguaje: Las subcadenas se utilizan en algoritmos de procesamiento del lenguaje natural para identificar palabras y frases. Esto se utiliza en aplicaciones como el reconocimiento de voz, donde el algoritmo debe identificar las palabras pronunciadas por un usuario.
- Reconocimiento de patrones: Las subcadenas se utilizan en algoritmos de reconocimiento de patrones para identificar patrones en los datos. Esto se puede utilizar para identificar tendencias en datos financieros o para detectar anomalías en imágenes.
- Seguridad de contraseña: Las subcadenas se utilizan para verificar contraseñas. Esto se hace comparando la contraseña ingresada con una subcadena almacenada de la contraseña original. Si los dos coinciden, entonces se verifica la contraseña. Esta técnica se utiliza en muchas aplicaciones para aumentar la seguridad.