Como iterar sobre palavras em uma string em C++: análise de métodos populares
Olá a todos! Sou iniciante em C++ e não consigo entender como dividir corretamente uma string em palavras individuais e percorrê-las em um loop. Em Python, isso é feito com uma linha usando `split()`, mas em C++ é tudo meio complicado.
Tenho uma string do tipo: `"Olá, como vai? Estou bem!"` Preciso exibir cada palavra separadamente, ignorando pontuação e espaços. Tentei usar `std::stringstream`, mas ele não remove vírgulas e pontos de interrogação — eles ficam grudados nas palavras. Por exemplo, aparece `"Olá,"` em vez de `"Olá"`.
Tentei criar minha própria solução com busca manual de espaços usando `std::string::find`, mas o código fica enorme e confuso. Além disso, minha versão não funciona com tabulações e múltiplos espaços.
Por favor, me digam como fazer isso de forma correta e elegante? De preferência em C++ moderno (11/14/17). Dê um exemplo de código que:
1. Divida a string em palavras por espaços e pontuação.
2. Ignore espaços extras e strings vazias.
3. Funcione.
No answers yet.
Faça login para deixar uma resposta