"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso replicar a funcionalidade startwith() e substring-to-integer do Python em C++?

Como posso replicar a funcionalidade startwith() e substring-to-integer do Python em C++?

Publicado em 2024-11-08
Navegar:807

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

Verificando a existência de string de prefixo e convertendo uma substring em número inteiro em C

Um usuário busca orientação sobre como implementar a verificação de prefixo de string do Python e conversão de substring em C. Especificamente, eles visam alcançar a funcionalidade do método startupswith() do Python e conversão de substring para um número inteiro.

Verificando a existência de string de prefixo

Para verificar se uma string C inicia com um prefixo específico, aproveite o método rfind() com uma posição de pesquisa zero. Por exemplo:

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

Ao definir a posição de pesquisa como zero, o método rfind() verifica apenas o início da string. Isso permite uma correspondência de prefixo eficiente e precisa.

Convertendo uma substring em um número inteiro

Para converter uma substring em um número inteiro, use a função stoi():

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

Este código verifica o prefixo "--foo=" e, se encontrado, extrai a substring começando do seu final (após o caractere "=") e converte-a em um número inteiro usando stoi().

Atualização: Boost Integration

O usuário expressa relutância em empregar o Boost. No entanto, eles são livres para usá-lo, se desejarem. Boost fornece recursos adicionais de manipulação de strings, incluindo as funcionalidades startups_with() e stoi() em sua Biblioteca Spirit.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3