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++ ::: Dicas & Truques ::: Strings e Caracteres

Como substituir substrings em strings C++ usando a função replace()

Quantidade de visualizações: 10685 vezes
Nesta dica mostrarei como podemos usar a função replace() da classe String do C++ para substituir parte de uma palavra, frase ou texto, ou seja, substituir uma substring em uma string. Para isso nós vamos usar a seguinte assinatura da função replace():

string& replace(size_t pos1, size_t n1, const string& str);
Veja que precisamos fornecer a posição inicial, o tamanho e a nova substring.

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 Java";
  cout << "A frase e: " << frase << endl;	
	
  // vamos substituir Java por C++
  frase.replace(9, 4, "PHP"); 
	 
  // e mostramos o resultado	 
  cout << "Depois da substituicao: " << frase << endl; 
	 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A frase é: Gosto de Java
Depois da substituição: Gosto de PHP

Link para compartilhar na Internet ou com seus amigos:

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

Exercícios Resolvidos de C++ - Desafio do número ausente. Dado um vetor de números naturais 1..n, encontre o valor ausente

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

Dado o vetor:

int valores[] = {1, 8, 7, 2, 6, 5, 3};


Encontre o elemento ausente na sequência de valores do vetor, sabendo que o primeiro valor é 1 e o último elemento é 8. Perceba que o vetor não precisa estar ordenado. Além disso, o entrevistador se certificará de que os valores serão sempre positivos e não haverá valores repetidos.

Sua saída deverá ser parecida com:

O número ausente é: 4
Resposta/Solução:

Dica: Use a fórmula n * (n + 1) / 2 para facilitar a resolução do exercício.

Veja a resolução comentada deste exercício usando 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;

int main(int argc, char *argv[]){
  // vamos declarar um vetor de inteiros faltando
  // um valor na sequência (não necessariamente ordenada)
  // Note a ausência do número 4
  int valores[] = {1, 8, 7, 2, 6, 5, 3};
  int i, soma_n, ausente, soma_elementos;
  int quant = 8; // tamanho do vetor + 1
    
  // o primeiro passo é obter a soma de 1..n elementos
  // natuais usando a fórmula n*(n+1)/2
  soma_n = (quant * (quant + 1)) / 2;
    
  // agora vamos somar os elementos do vetor
  soma_elementos = 0;
  for(i = 0; i < 7; i++){
    soma_elementos = soma_elementos + valores[i];
  }
    
  // agora calculamos o valor ausente
  ausente = soma_n - soma_elementos;
    
  // vamos mostrar o resultado
  cout << "O número ausente é: " << ausente << endl;
  
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como somar os elementos de um vetor de inteiros em C++

Quantidade de visualizações: 16938 vezes
Esta dica mostra a você como usar um laço for do C++ para somar todos os valores dos elementos de um vetor de inteiros. Observe que aqui nós declaramos e inicializamos o vetor (array) em apenas uma instrução:

----------------------------------------------------------------------
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>

using namespace std;

int main(int argc, char *argv[])
{
  // declara e inicializa um array de
  // 5 inteiros
  int valores[] = {2, 7, 1, 5, 6};
  int soma = 0;

  // soma os valores dos elementos
  for(int i = 0; i < 5; i++){
    soma += valores[i];
    // o mesmo que
    // soma = soma + valores[i];
  }

  // exibe o resultado
  cout << "Soma: " << soma << endl;

  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Soma: 21


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

Como retornar o tamanho de uma string em C++ usando a função size()

Quantidade de visualizações: 8048 vezes
Nesta dica mostrarei como podemos obter a quantidade de caracteres de uma string em C++ usando a função size() da classe string. Esta função não exige nenhum argumento e retorna um número inteiro contendo a quantidade de caracteres na 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 principal do programa C++ 
int main(int argc, char *argv[]){
  // vamos declarar um objeto string
  string frase = "Gosto de C++";
 
  // vamos obter o tamanho da string
  size_t tamanho = frase.size();
  
  // e mostramos o resultado
  cout << "A frase possui " << tamanho << " caracteres."; 
     
  cout << "\n" << endl;	    
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

A frase possui 12 caracteres.


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

Como acessar os caracteres de uma string C++ individualmente usando um iterador

Quantidade de visualizações: 11132 vezes
Nesta dica mostrarei como podemos usar um iterador para percorrer todos os caracteres de uma palavra, frase ou texto em C++. Para isso nós vamos combinar um iterator e as funções begin() e end().

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 principal do programa C++ 
int main(int argc, char *argv[]){
  // vamos declarar um objeto da classe string
  string palavra("FACULDADE");
  
  // agora criamos um iterador para a string
  string::iterator it;
   
  // e usamos um laço for para percorrer o iterador
  // do início ao fim 
  for(it = palavra.begin(); it < palavra.end(); it++){
    // e mostramos os caracteres individuais
    cout << *it << "\n";
  } 
     
  cout << "\n" << endl;	    
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

F
A
C
U
L
D
A
D
E


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

Como inverter uma string em C++ usando as funções begin(), end() e reverse()

Quantidade de visualizações: 13333 vezes
Em várias situações nós precisamos inverter a ordem dos caracteres de uma palavra, frase ou texto em C++. Para isso nós podemos usar uma combinação das funções begin(), end() e reverse() da biblioteca padrão do C++.

Veja o código 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>
#include <algorithm> 
 
using namespace std;
 
// função principal do programa C++ 
int main(int argc, char *argv[]){
  // vamos declarar um objeto da classe string
  string frase = "Gosto de programar em C++";
     
  // vamos mostrar a string original
  cout << "String original: " << frase << endl;   
     
  // agora vamos usar a função reverse() para inverter o 
  // conteúdo da string
  reverse(frase.begin(), frase.end());
      
  // e mostramos o resultado    
  cout << "String invertida: " << frase << endl;;
     
  cout << "\n" << endl;	    
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

String original: Gosto de programar em C++
String invertida: ++C me ramargorp ed otsoG


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++ ::: 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: 729 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)


C++ ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados size_t da linguagem C++

Quantidade de visualizações: 15572 vezes
O tipo size_t é definido no arquivo stddef.h e em outros headers, e sua definição pode ser encontrada da seguinte forma:

----------------------------------------------------------------------
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 
----------------------------------------------------------------------

typedef unsigned long size_t; 

Este tipo é usado para definir tamanhos de strings e blocos de memória. Foi proposto pelo ANSI C.

É comum encontrar size_t substituindo unsigned int ou unsigned long. Muito frequente também é ver este tipo recebendo o resultado de uma chamada ao operator sizeof. Veja:

----------------------------------------------------------------------
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>

using namespace std;

int main(){
  // vamos obter a quantidade de bytes em um int
  size_t tam = sizeof(int);
  
  cout << "Um inteiro nesta arquitetura contém: " <<
    tam << " bytes" << endl;
}

Ao executarmos este código nós teremos o seguinte resultado:

Um inteiro nesta arquitetura contém: 4 bytes


Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Locação da obra

Para a fase de locação da obra, é indispensável o emprego da(o) ______________.

Assinale a alternativa que completa a frase.

A) Concreto.

B) Instalação elétrica provisória.

C) Topografia.

D) Canteiro mobilizado.

E) Entrada de água provisória.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Tintas

A durabilidade das tintas em superfícies é influenciada por vários fatores que podem desempenhar um papel importante no desempenho e na vida útil da tinta. Portanto, é essencial considerar uma combinação de fatores para garantir que a tinta mantenha sua qualidade e aparência ao longo do tempo.

Marque a alternativa correta que indica os fatores que influenciam a durabilidade das tintas em superfícies.

A) As etapas de preparação e de verificação da superfície a ser pintada não influenciam a aderência do material a ser aplicado.

B) A qualidade da tinta em si é um fator crítico, assim como a escolha correta da tinta. Portanto, tintas de baixa qualidade tendem a se desgastar e desbotar mais rapidamente.

C) As condições climáticas, como exposição a sol, chuva, neve e variações de temperatura, podem afetar a durabilidade da tinta. Além disso, as cores mais claras tendem a desbotar mais rapidamente quando expostas à luz solar direta.

D) O uso de um primer qualquer pode melhorar a aderência da tinta à superfície e prolongar sua vida útil.

E) A durabilidade das tintas em superfícies é influenciada por diversos fatores, um exemplo disso são as cores. Cores mais claras podem ser mais propensas a desbotar quando expostas à luz solar direta, já cores escuras podem mostrar menos sujeira e desgaste ao longo do tempo.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Perda de Carga Localizada, Acessórios de Tubulação

Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?".

Qual o comprimento equivalente das perdas de cargas singulares da tubulação anteriormente citada, considerando que o tubo perde linearmente 0,135 m de carga por metros de tubulação?

Selecione a resposta:

A) 9 m.

B) 14 m.

C) 10 m.

D) 12 m.

E) 8 m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Dimensionamento de lajes maciças à flexão

As lajes maciças são armadas em cruz, quando apresentam a relação entre o maior e o menor vão inferior a 2. Nessas situações, a laje pode ser dimensionada a partir de valores preestabelecidos em tabelas como a de Marcus.

Considere a laje maciça armada em cruz apresentada na figura a seguir:



Dados:

Peso específico do concreto = 25kN/m3
Carga do contrapiso + revestimento = 2,00kN/m2
Carga acidental = 2,50kN/m2
Altura da laje (h) = 10cm
Altura útil (d) = 6cm
Cobrimento nominal = 2,5cm
fcd = fck / 1,4 (considerar concreto de 20MPa)
fyd = fyk / 1,15 (considerar aço CA-50)

Assinale a alternativa correta:

A) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 11cm na laje em questão.

B) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 12cm na laje.

C) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 13cm na laje.

D) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 14cm na laje.

E) A altura de 10cm não é suficiente para resistir ao momento máximo atuante, devendo ser empregada, pelo menos, uma altura de 15cm na laje.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Equação da Continuidade

Uma tubulação vertical de 200mm de diâmetro apresenta, em um pequeno trecho, uma seção contraída de 100mm, onde a pressão é de 1 atm. A 4 metros acima desse ponto, a pressão eleva-se para 18mca. Calcular a velocidade e a vazão no trecho de diâmetro 200mm. Considerar escoamento permanente e sem perda de energia.



A) V = 3,91m/s e Q = 0,12m3/s.

B) V = 15,64m/s e Q =0,12m3/s.

C) V = 3,91m/s e Q = 0,03m3/s.

D) V = 15,64m/s e Q = 0,49m3/s.

E) V = 2,29m/s e Q = 0,07m3/s.
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á 24 usuários muito felizes estudando em nosso site.