Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <stdio.h>
- #include <map>
- using namespace std;
- int main(){
- // UM EXEMPLO COM VÁRIAS FUNCIONALIDADES UTILIZANDO MAP
- // incluir map
- char texto[1234], word[30], palavra[30];
- map<string, int> mp; // mapa chamado mp, com a chave(indice) do tipo string e conteudo inteiro
- int maior = 0;
- string aparece;
- gets(texto); // leio um texto qualquer
- int t = strlen(texto); // pego o tamanho do texto
- // essa parte, eu separo cada palavra do meu texto
- int c = 0; // começo na posicao 0
- for(int i=0; i<t; i++){
- if(isalpha(texto[i])){ // se for letra, ou seja parte de uma palavra
- word[c] = texto[i]; // a nova palavra que tou formando recebe a letra
- c++; // aumento um no indice da nova palavra
- }
- else{ // caso nao seja letra, pode ser espaço, virgula, pontuações em geral..
- word[c] = '\0'; // no final de toda string, tenho que colocar o caracter '\0'
- if(c > 0){ // se tenho pelo menos uma letra, ou seja, é uma palavra
- mp[word]++; // conto mais uma vez a palavra no meu mapa
- c = 0; // volto c para 0, p procurar outra palavra
- }
- }
- }
- if(c > 0){ // faço a mesma cosia fora do while, pois meu texto provavelmente vai terminar
- word[c] = '\0'; // com uma letra, e não vai cair no else do for de cima..
- mp[word]++;
- }
- // Quantidade de palavras diferentes
- cout<<mp.size()<<endl;
- // Palavras(em ordem alfabética) e suas respectivas quantidades
- map<string, int> :: iterator it; // cria o iterator do mesmo tipo do mapa(it foi o nome que eu dei)
- for(it = mp.begin(); it != mp.end(); it++){ // pode usar o nome que quiser
- cout<<it->first<<" - "<<it->second<<endl; // mostro a chave(indice) e o conteudo
- if(it->second > maior){ // lógica p ver a palavra que aparece mais vezes
- maior = it->second; // maior qtdade que uma palavra aparece
- aparece = it->first; // palavra que aparece mais vezes por enqto
- }
- }
- // Palavra que mais aparece
- cout<<"Mais aparece: "<<aparece<<endl;
- // Checando se uma palavra existe no meu mapa
- gets(palavra);
- if(mp[palavra] > 0)
- cout<<palavra<<" existe!"<<endl;
- else
- cout<<palavra<<" nao existe..."<<endl;
- // Deletando tudo do mapa
- mp.clear();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment