Ir ao conteúdo
  • Cadastre-se

C++ Linguagem C++ com a função "find"


Posts recomendados

Preciso elaborar um código com a linguagem C++ e a função "find" listando 20 nomes e sobrenomes, sendo informado no final quantas pessoas da lista possuem em seu nome a palavra-chave pedida na função "find", por exemplo, entre os 20 informo João de Souza e João da Silva e peço para encontrar quantos "Silva" tem e me informa só o João da Silva.

Agradeço a ajuda, pois estou começando em SI.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Paulo Sérgio Oliveira Coutinho     você precisa pegar o texto como char usando essas variáveis :

char texto[100]="";
string palavra, cvr_texto="";
cin.getline(texto, 100);

e depois passar ele para uma string,

 cvr_texto = texto;

depois coloca esses comando  aqui para procurar a palavra :

cout << "Procurar palavra: ";
cin >> palavra;
posicao = cvr_texto.find(palavra);

com isso se a variável posicao for igual a -1 então a palavra não se encontra no texto digitado e se não for  -1 então essa variável conterá o número que indica em qual posição do texto começa essa palavra procurada e então no seu caso você precisaria procurar o primeiro nome " joão da ".

Link para o comentário
Compartilhar em outros sites

Eu até coloquei o código abaixo para "rodar" no codeblocs:

#include <iostream>
#include <stdlib.h>
#include <string>

using namespace std;

int main()
{
    int posicao;

    char texto[100]="";
    string palavra, cvr_texto="";
    cin.getline(texto, 100);

    cvr_texto = texto;

    cout << "Procurar palavra: ";
    cin >> palavra;
    posicao = cvr_texto.find(palavra);
}

 

Mas está incompleto, deve compor as exigências abaixo:

 

1)      Pesquisar sobre a função (método) find do tipo (da classe) string do C++;

 

2)      Crie uma pequena aplicação em C++ que funcione como um sistema de busca em uma lista de nomes. UTILIZE OBRIGATORIAMENTE O MÉTODO PESQUISADO NO ITEM 1. A aplicação deve inicialmente solicitar ao usuário um nome/sobrenome chave (ex.: “silva”) e, a seguir, uma lista de 20 nomes completos de pessoas. A aplicação no final deve informar quantas pessoas possuem em seu nome completo a palavra chave. (ex.: “joão da silva” conta, “josé de souza" não conta);

 

3)      Experimente executar a aplicação digitando o nome de pesquisa totalmente em minúsculo e digitar o nome completo sempre com a primeira letra em maiúsculo e analise o resultado. (ex.: “silva” para o nome chave e “João da Silva” para um dos nomes);

 

4)      Gere uma nova versão da aplicação do item 2 para fazer a pesquisa desconsiderando as diferenças entre maiúsculas e minúsculas.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Paulo Sérgio Oliveira Coutinho.

 

 

4 horas atrás, Paulo Sérgio Oliveira Coutinho disse:

1)      Pesquisar sobre a função (método) find do tipo (da classe) string do C++;

Já fez isso?

 

A primeira etapa é entender como funciona o métido find(). Entendendo seu funcionamento, o resto fica mais simples.

 

 

O @devair1010 já deu a dica de como usar:

14 horas atrás, devair1010 disse:

com isso se a variável posicao for igual a -1 então a palavra não se encontra no texto digitado e se não for  -1 então essa variável conterá o número que indica em qual posição do texto começa essa palavra procurada e então no seu caso você precisaria procurar o primeiro nome " joão da ".

 

Teoricamente você já está recebendo a posição.

5 horas atrás, Paulo Sérgio Oliveira Coutinho disse:

posicao = cvr_texto.find(palavra);

 

Basta verificar o seu valor e fazer o que tem que fazer.

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...