Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: C++ ::: STL (Standard Template Library) ::: unordered_map

Como contar as frequências de palavras em uma frase ou texto em C++ usando um unordered_map

Quantidade de visualizações: 730 vezes
Nesta dica mostrarei como podemos usar o mapa não ordenado (unordered_map) da linguagem C++ para contar as frequências das palavras individuais de uma palavra ou texto. O exemplo mostrado aqui serve como base para a criação de aplicações muito interessantes.

Veja o código C++ completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>
#include <unordered_map>
#include <bits/stdc++.h>

using namespace std;

// protótipo da função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase);

int main(int argc, char *argv[]){
  // vamos declarar uma frase
  // retirei acentos e pontuações de propósito
  string frase = "Gosto de Java e Python pois quero aprender Java";
  
  // mostramos a frase
  cout << "A frase é: " << frase << endl;
  
  // chamamos a função que exibe as frequencias
  cout << "\nA frequência das palavras é:\n" << endl;
  exibir_frequencias(frase);
 
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}

// função que exibe a frequência de palavras em uma
// frase ou texto
void exibir_frequencias(const string &frase){
  // vamos declarar um mapa que terá como chave uma string
  // e como valor um int
  unordered_map<string, int> frequencias;
  
  // agora convertemos a frase recebido como argumento
  // em um objeto stringstream
  stringstream ss(frase);
  
  // e percorremos as palavras individualmente
  string palavra;
  while (ss >> palavra){
    // essa palavra já existe no mapa?
    if (frequencias.find(palavra) == frequencias.end()){
      // adiciona esta palavra ao mapa
      frequencias[palavra] = 1;
    }
    else{
      // já existe. Vamos incrementar esta frequência
      frequencias[palavra] = frequencias[palavra] + 1;
    }
  }
  
  // agora percorremos o mapa não ordenado, acessando
  // cada chave e mostrando a frequencia de cada palavra
  unordered_map<string, int>:: iterator p;
  for (p = frequencias.begin(); p != frequencias.end(); p++){
    cout << "(" << p->first << ", " << p->second << ")\n";
  }
}

Ao executar este código C++ nós teremos o seguinte resultado:

A frase é: Gosto de Java e Python pois quero aprender Java

A frequência das palavras é:

(aprender, 1)
(quero, 1)
(pois, 1)
(Gosto, 1)
(Java, 2)
(e, 1)
(de, 1)
(Python, 1)

Link para compartilhar na Internet ou com seus amigos:

C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matriz

Quantidade de visualizações: 15286 vezes
Exercícios Resolvidos de C++ - Escreva um programa C++ que mostra como somar os elementos da diagonal secundária de uma matriz

Pergunta/Tarefa:

Em álgebra linear, a diagonal secundária de uma matriz A é a coleção das entradas Aij em que [i]i[/i] + [i]j[/i] é igual a n + 1 (onde n é a ordem da matriz). A diagonal secundária de uma matriz quadrada une o seu canto inferior esquerdo ao canto superior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa C++ que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal secundária. Sua saída deverá ser parecida com a imagem abaixo:



Resposta/Solução:

Veja a resolução comentada deste exercício:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

int main(int argc, char *argv[])
{
  int matriz[3][3]; // uma matriz de três linhas e três colunas
  int soma_diagonal = 0; // guarda a soma dos elementos na diagonal secundária

  // vamos ler os valores para os elementos da matriz
  for(int i = 0; i < 3; i++){ // linhas
    for(int j = 0; j < 3; j++){ // colunas
      cout << "Valor para a linha " << i << " e coluna " << j << ": ";
      cin >> matriz[i][j];       
    }       
  }
  
  // vamos mostrar a matriz da forma que ela foi informada
  cout << "\n\nValores na matriz\n" << endl;
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
      cout << setw(5) << matriz[i][j];   
    }
    
    cout << "\n" << endl;       
  }
  
  // vamos calcular a soma dos elementos da diagonal secundária
  int ordem = 3; // ordem da matriz
  for(int i = 1; i <= 3; i++){
    for(int j = 1; j <= 3; j++){
      if((i + j) == (ordem + 1)){
        soma_diagonal = soma_diagonal + matriz[i - 1][j - 1];
      }
    }
  }
  
  cout << "A soma dos elementos da diagonal secundaria e: " << 
    soma_diagonal << endl;
  cout << "\n" << endl;
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



C++ ::: Fundamentos da Linguagem ::: Passos Iniciais

C++ do básico ao avançado - Conheça a origem da linguagem C++

Quantidade de visualizações: 13543 vezes
C++ começou como uma versão expandida de C. As extensões C++ foram inventadas primeiramente por Bjarne Stroustrup, em 1979, no Bell Laboratories em Murray Hill, New Jersey. Ele inicialmente chamou a nova linguagem de "C com classes". Contudo, em 1983 o nome foi mudado para C++.

Embora C fosse uma das linguagens preferidas e mais usadas para programação profissional em todo o mundo, a invenção de C++ se fez necessária devido a um fator de programação: o aumento da complexidade. No decorrer dos anos, programas de computador se tornaram maiores e mais complexos. Mesmo sendo uma excelente linguagem de programação, C tem seus limites. Em C, uma vez que um programa atinja a marca de 25.000 à 100.000 linhas de códigos, este se torna tão complexo que é difícil analisá-lo como um todo. A manutenção de seu código se torna um pesadelo. O propósito de C++ é quebrar esta barreira. A essência do C++ é permitir que programadores compreendam e gerenciem programas cada vez mais complexos.

A maioria das adições feitas ao C por Stroustrup suportam a programação orientada a objetos, às vezes chamada de POO. Stroustrup afirmou que algumas das características da orientação a objetos de C++ foram inspiradas em uma linguagem chamada Simula67. Assim, C++ representa a combinação de dois métodos poderosos de programação.

Desde que C++ foi inventada, ela já passou por três revisões importantes, com adições e modificações da linguagem. A primeira revisão ocorreu em 1985 e a segunda em 1990. A terceira ocorreu durante a padronização do C++. Há vários anos que este trabalho de padronização foi iniciado. Para esta finalidade, uma associação entre a ANSI (American National Standards Institute) e a ISO (International Standards Organization) resultou em um comitê de padronização.

O primeiro documento contendo o padrão proposto foi criado em 25 de janeiro de 1994. Neste documento, o comitê ANSI/ISO C++ manteve as características definidas por Stroustrup e acrescentou algumas outras. Mas, no geral, este documento inicial refletiu o estado de C++ na época.

Logo após a finalização do primeiro documento de padronização C++, um evento ocorreu e com ele a linguagem foi amplamente expandida: a criação da Standard Template Library (STL) por Alexander Stepanov. A STL é um conjunto de rotinas generícas que podemos usar para manipular dados. A STL não é somente poderosa e elegante, mas também muito extensa.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: C++ Básico

Exercício Resolvido de C++ - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescente

Quantidade de visualizações: 721 vezes
Pergunta/Tarefa:

Escreva um programa C++ que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida".

Sua saída deverá ser parecida com:

Primeiro número: 4
Segundo número: 8
Terceiro número: 11
Ordem Crescente
Resposta/Solução:

Veja a resolução comentada deste exercício em C++:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do exercício
  int a, b, c;

  // vamos pedir para o usuário informar três números
  cout << "Primeiro número: ";
  cin >> a;
  cout << "Segundo número: ";
  cin >> b;
  cout << "Terceiro número: ";
  cin >> c;
    
  // os números estão em ordem crescente?
  if (a < b && b < c){
    cout << "Ordem Crescente" << endl;
  }
  // os números estão em ordem decrescente?
  else if (a > b && b > c){
    cout << "Ordem Decrescente" << endl;
  }
  // sem ordem definida
  else{
    cout << "Sem ordem definida" << endl;
  } 
	
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



C++ ::: Dicas & Truques ::: Strings e Caracteres

Como remover parte de uma string em C++ usando a função erase()

Quantidade de visualizações: 17160 vezes
Em algumas situações nós precisamos remover parte de uma palavra, frase ou texto em C++. Para isso nós podemos usar a função erase().

Esta função é usada para remover parte de uma string, consequentemente diminuindo seu tamanho. Veja a sua assinatura:

string& erase(size_t pos = 0, size_t n = npos);
Veja que temos que informar a posição inicial (pos) e a quantidade de caracteres que serão removidos (npos). A string sem a substring removida é retornada ao chamador do método.

Veja o código C++ completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // vamos criar uma string
  string frase("Gosto de MySQL");
   
  // Antes da remoção
  cout << "Antes da remocao: " << frase << endl;
	
  // vamos remover "My"
  string nova_frase = frase.erase(9, 2);
  
  // e mostramos o resultado
  cout << "Depois da remocao: " << nova_frase << endl;
	  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Antes da remoção: Gosto de MySQL
Depois da remoção: Gosto de SQL


C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++

Quantidade de visualizações: 14717 vezes
Como já vimos em outras dicas desta seção, uma classe C++ possui propriedades (variáveis) e métodos (funções). Veja a seguinte declaração de uma classe Produto:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

// definição da classe Produto
class Produto{
  public:
    void setNome(string);
    string getNome();
    void setPreco(double);
    double getPreco();
  
  private:
    string nome;
    double preco;
};

Aqui cada instância da classe Produto terá suas próprias variáveis nome e preco e os métodos que permitem acesso e alteração destas variáveis também estão disponíveis a cada instância.

Há, porém, situações nas quais gostaríamos que um determinado método estivesse atrelado à classe e não à cada instância individual. Desta forma, é possível chamar um método de uma classe sem a necessidade da criação de instâncias da mesma.

Métodos estáticos em C++ podem ser criados por meio do uso da palavra-chave static. É comum tais métodos serem declarados com o modificador public, o que os torna acessíveis fora da classe na qual estes foram declarados. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

// classe Pessoa com duas variáveis privadas e 
// um método estático
class Pessoa{
  public:  
    // um método estático que permite verificar a validade
    // de um número de CPF
    static bool isCPFValido(string);
  
  private:
    string nome;
    int idade;
};

// implementação da classe Pessoa
bool Pessoa::isCPFValido(string cpf){
  // alguns cálculos aqui
  return true;
}

int main(int argc, char *argv[]){
  // vamos efetuar uma chamada ao método isCPFValido() sem
  // criar uma instância da classe Pessoa
  if(Pessoa::isCPFValido("12345")){
    cout << "CPF Válido" << endl;
  }
  else{
    cout << "CPF inVálido" << endl;
  }
    
  system("PAUSE");
  return EXIT_SUCCESS;
}

Aqui nós temos os códigos da definição e implementação da classe Pessoa em apenas um arquivo (main.cpp). Em uma aplicação real é interessante colocar estas partes em arquivos separados (.h e .cpp). Note que o método estático isCPFValido() foi declarado assim:

static bool isCPFValido(string);

Desta forma, podemos chamá-la a partir de código externo à classe sem a necessidade de criar uma nova instância da mesma. Veja:

if(Pessoa::isCPFValido("12345")){}

É importante notar que métodos estáticos não possuem acesso a variáveis e métodos não estáticos da classe, tampouco ao ponteiro this (que só existe quando criamos instâncias da classe). Assim, o trecho de código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

bool Pessoa::isCPFValido(string cpf){
  // alguns cálculos aqui
  
  // vamos acessar a variável não estática nome
  nome = "Osmar J. Silva";
  
  return true;
}

vai gerar o seguinte erro de compilação:

invalid use of member `Pessoa::nome' in static member function.

Se usarmos this->nome a mensagem de erro de compilação será:

`this' is unavailable for static member functions.

Métodos estáticos são úteis quando precisamos criar classes que atuarão como suporte, nas quais poderemos chamar funções (métodos) auxiliares sem a necessidade de criar novas instâncias a cada vez que estas funções forem necessárias.


C++ ::: Dicas & Truques ::: Programação Orientada a Objetos

Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cpp

Quantidade de visualizações: 28042 vezes
Esta dica o guiará passo-a-passo na criação de uma classe C++, incluindo os arquivos .h e .cpp. Para isso vamos usar o Dev-C++ (acreditamos que o procedimento é parecido com outros compiladores).

Vamos começar com o arquivo de definição. Com um projeto já iniciado no Dev-C++, vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes.

Salve o arquivo com o nome de "pessoa.h" e inclua nele o seguinte código:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

/*
  Código de definição: pessoa.h
*/

#ifndef PESSOA_H
#define PESSOA_H

#include <string>
using std::string;

class Pessoa{
  public:
    void setNome(string nome);
    void setIdade(int idade);
    string getNome();
    int getIdade();
  private:
    string nome;
    int idade;
};

#endif

Salve este código como pessoa.h no diretório de sua aplicação C++. Este é o arquivo de definição da classe. É nele que declaramos os membros públicos e privados, incluindo as assinaturas dos métodos da classe. Passemos agora ao arquivo de implementação. Novamente vá em File -> New -> Source File. Quando perguntado se deseja adicionar o arquivo ao projeto existente, clique Yes. Salve o novo arquivo como "pessoa.cpp" e inclua nele o seguinte conteúdo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

/*
  Código de implementação: pessoa.cpp
*/

#include "pessoa.h"

void Pessoa::setNome(string nome){
  this->nome = nome;
}

void Pessoa::setIdade(int idade){
  this->idade = idade;
}

string Pessoa::getNome(){
  return this->nome;
}

int Pessoa::getIdade(){
  return this->idade;
}

Salve este código como pessoa.cpp no diretório de sua aplicação C++. Este é o arquivo de implementação dos métodos da classe Pessoa. Veja o uso da palavra-chave this quando queremos referenciar o objeto atual da classe e, é claro, evitar ambiguidade entre o nome das variáveis da classe e os nomes dos parâmetros dos métodos.

Hora de testar. Crie o arquivo principal da aplicação (aquele que contém o método main()):

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <iostream>
#include "pessoa.h"

using namespace std;

int main(int argc, char *argv[])
{
  // declara um objeto da classe Pessoa
  Pessoa p;

  // informa o nome e idade da pessoa
  p.setNome("Osmar J. Silva");
  p.setIdade(27);

  // obtém o nome e idade da pessoa
  cout << "Nome: " << p.getNome() << endl;
  cout << "Idade: " << p.getIdade() << endl;

  cout << "\n" << endl;
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Funcionou tudo como planejado? Se funcionou, parabéns! Já fizemos um bom progresso na criação e uso de classes em C++.


C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercício Resolvido de C++ - Calculando e exibindo os números primos entre 2 e 100

Quantidade de visualizações: 10103 vezes
Exercícios Resolvidos de C++ - Calculando e exibindo os números primos entre 2 e 100

Pergunta/Tarefa:

Um inteiro é um número primo se ele for divisível somente por 1 e por ele mesmo. Assim, 2, 3, 5 e 7 são primos, enquanto 4, 6, 8 e 9 não são. Note que o número 1 não é primo.

Escreva um programa C++ que usa um laço for, while ou do...while para calcular e exibir os números primos entre 2 (incluindo) e 100 (incluindo). A saída do programa deverá ser parecida com:

Numeros primos entre 2 e 100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Resposta/Solução:

Veja a resolução comentada deste exercício:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]){
  // limite dos números primos (incluindo)
  int limite = 100;
               
  // Lembre-se! O número 1 não é primo
  cout << "Numeros primos entre 2 e " << limite << endl;
  
  // laço que percorre os valores de 2 até o limite desejado
  for(int i = 2; i <= limite; i++){
    bool primo = true;
                       
    // se o valor de i for 7, a variável j do laço contará
    // de 2 até 7 / 2 (divisão inteira), ou seja, 3. Se o 
    // módulo de 7 por qualquer um dos valores neste intervalo 
    // for igual a 0, então o número não é primo
    for(int j = 2; j <= (i / 2); j++){
      if(i % j == 0){
        primo = false; // não é primo
        break;
      }
    }
    
    if(primo){
      cout << i << " ";
    }
  }
  
  cout << "\n\n";
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



C++ ::: Dicas & Truques ::: Strings e Caracteres

Como substituir todas as ocorrências de uma substring em uma string C++ usando uma função substituir_string() personalizada

Quantidade de visualizações: 10346 vezes
Nesta dica mostrarei como podemos tirar proveito das funções empty(), size(), find(), replace() e length() da classe String do C++ para escrever uma função substituir_string() personalizada que nos permite substituir todas as ocorrências de uma substring em uma string.

Veja o código C++ completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

#include <string>
#include <iostream>

using namespace std;

// função personalizada para substituir todas as ocorrências
// de uma substring em uma string
void substituir_string(string& str, const string de, 
  const string para){
  
  // variáveis auxiliares
  int i = 0, indice;
  
  // a string está vazia?
  if(str.empty()){
    str = de;
    return;
  }
  
  // fazemos as substituições da substring
  while(i < str.size()){
    indice = str.find(de, 0);
    
    if(indice >= 0){ 
      str.replace(indice, de.length(), para);
    }
    else{
      return;
    }
	
    i++;
  }
}

// função principal do programa
int main(int argc, char *argv[]){
  // vamos criar uma string
  string frase = "Java? Gosto de Java, Java!";
  cout << "A frase original é: " << frase << endl;	
	
  // Substitui as ocorrências de "Java" por "PHP"
  substituir_string(frase, "Java", "PHP"); 
	 
  // e mostramos o resultado	 
  cout << "Depois da substituição: " << frase << endl; 
	 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

A frase original é Java? Gosto de Java, Java!
Depois da substituição: PHP? Gosto de PHP, PHP!


Vamos testar seus conhecimentos em

Características do concreto armado

Os domínios de deformação em concreto armado são categorias que descrevem diferentes estados de deformação do material em relação às tensões aplicadas. Cada domínio corresponde a um comportamento específico do material e pode ser usado para entender como o concreto e o aço de reforço interagem sob diferentes condições de carga.

Nesse sentido, assinale a alternativa que traz o domínio no qual as peças de concreto armado devem ser projetadas de modo a melhor aproveitar as resistências dos materiais.

A) Domínio 1.

B) Domínio 2.

C) Domínio 3.

D) Domínio 4.

E) Domínio 5.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Analise o seguinte trecho de código JavaScript

var valores = new Array(2, 4);

Este código

A) cria uma matriz chamada valores com 2 linhas e 4 colunas.

B) cria um array valores e atribui os valores 2 e 4 para valores[1] e valores[2].

C) cria um array valores e atribui os valores 2 e 4 para valores[0] e valores[1].

D) cria um array de três elementos com os índices variando de 2 até 4.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual a sintaxe correta para mostrar o tipo de uma variável em Python?

a = 45
print("O tipo da variável é: {0}".format(______________))

A) typeOf(a)

B) Type(a)

C) typeof(a)

D) type(a)

E) type a
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Características do concreto armado

Sabe-se que o controle adequado da retração é fundamental no projeto e na construção de estruturas de concreto para evitar problemas como fissuração e para garantir a integridade da estrutura ao longo do tempo.

Marque a alternativa correta a respeito desse fenômeno.

A) A retração química pode levar à formação de produtos de hidratação que ocupam mais espaço do que os materiais originais.

B) A retração plástica ocorre após o endurecimento do concreto e está relacionada à perda contínua de umidade.

C) A retração por secagem ocorre durante o estado fresco do concreto, enquanto ele ainda está sendo moldado e antes de começar a endurecer.

D) A retração térmica ocorre devido a reações químicas dentro do concreto, causando expansão especialmente em estruturas expostas a condições ambientais extremas.

E) A retração por secagem é comum em superfícies de concreto expostas ao Sol ou ao vento durante a fase de cura, ou seja, no seu processo de endurecimento.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

São exemplos de objetos do espaço físico que compreendem o estudo da hidrografia, com exceção de

A) nascentes.

B) lagos.

C) rios.

D) matas.

E) aquíferos.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C++

Veja mais Dicas e truques de C++

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 26 usuários muito felizes estudando em nosso site.