"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo replicar la funcionalidad de inicio con() y de subcadena a entero de Python en C++?

¿Cómo puedo replicar la funcionalidad de inicio con() y de subcadena a entero de Python en C++?

Publicado el 2024-11-08
Navegar:219

How can I replicate Python\'s startswith() and substring-to-integer functionality in C  ?

Comprobación de la existencia de cadenas de prefijos y conversión de una subcadena a entero en C

Un usuario busca orientación sobre cómo implementar la verificación de prefijos de cadenas y la conversión de subcadenas de Python Cª . Específicamente, su objetivo es lograr la funcionalidad del método startwith() de Python y la conversión de subcadenas a un número entero. con un prefijo específico, aproveche el método rfind() con una posición de búsqueda de cero. Por ejemplo:

std::string s = "tititoto"; si (s.rfind("titi", 0) == 0) { // s comienza con "titi" }

Al establecer la posición de búsqueda en cero, el método rfind() solo verifica el comienzo de la cadena. Esto permite una coincidencia de prefijos eficiente y precisa.

std::string s = "tititoto";
if (s.rfind("titi", 0) == 0) {
  // s starts with "titi"
}

Para convertir una subcadena en un número entero, use la función stoi():

if (s.rfind("--foo=", 0) == 0) { int foo_value = std::stoi(s.substr(strlen("--foo="))); }

Este código busca el prefijo "--foo=" y, si lo encuentra, extrae la subcadena comenzando desde su final (después del carácter "=") y la convierte en un número entero usando stoi().

if (s.rfind("--foo=", 0) == 0) {
    int foo_value = std::stoi(s.substr(strlen("--foo=")));
}

El usuario expresa renuencia a emplear Boost. Sin embargo, son libres de utilizarlo si lo desean. Boost proporciona capacidades adicionales de manipulación de cadenas, incluida la funcionalidad start_with() y stoi() en su biblioteca Spirit.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3