Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Como remover caracteres repetidos em uma string usando C - Exercícios Resolvidos de C

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

Escreva um programa C que solicita ao usuário uma palavra ou frase e remove todos os caracteres repetidos.

Sua saída deverá ser parecida com:

Informe um palavra ou frase: Gosto de programar em C
A string sem as repetições é Gost deprgamC
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>

int main(int argc, char *argv[]){
  // variáveis que vamos usar na resolução do problema
  char palavra[100];
  int i, j, k;
	
  setlocale(LC_ALL,""); // para acentos do português
	
  // vamo pedir para o usuário informar uma palavra, frase
  // ou texto
  printf("Informe um palavra ou frase: ");
  gets(palavra);
  
  // percorremos todos os caracteres da string informada	 	
......


Link para compartilhar na Internet ou com seus amigos:

C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios

C++ Windows API - Como ler o conteúdo de um arquivo usando a função ReadFile() da Win32 API

Quantidade de visualizações: 8620 vezes
A função ReadFile() é usada quando queremos ler o conteúdo de um arquivo. A leitura se inicia na posição zero do arquivo e mantém um ponteiro de arquivo, a partir do qual as leituras subsequentes ocorrerão. Esta função pode ser usada para leituras síncronas e assíncronas. Para leituras apenas assíncronas devemos usar ReadFileEx().

Veja seu protótipo na documentação da API do Windows:

BOOL WINAPI ReadFile(
  HANDLE hFile,
  LPVOID lpBuffer,
  DWORD nNumberOfBytesToRead,
......


Antes de vermos um exemplo de como usar a função ReadFile(), vamos dar uma olhada em seus parâmetros:

a) HANDLE hFile - Este é o handle para o arquivo a partir do qual queremos ler. Tal handle deve ser criado com o direito de acesso GENERIC_READ.

b) LPVOID lpBuffer - Um ponteiro para o buffer que receberá os dados lidos do arquivo.

c) DWORD nNumberOfBytesToRead - O número máximo de bytes a serem lidos de cada vez. Geralmente este número está relacionado à quantidade de bytes dos elementos do buffer.

d) LPDWORD lpNumberOfBytesRead - Um ponteiro para uma variável que receberá o número de bytes lidos. A função ReadFile() define o valor desta variável como 0 antes de cada leitura e verificação de erros.

e) LPOVERLAPPED lpOverlapped - Um ponteiro para um estrutura OVERLAPPED. Esta estrutura é exigida se o handle para o arquivo for obtido usando FILE_FLAG_OVERLAPPED para o parâmetro dwFlagsAndAttributes da função CreateFile(). Geralmente usamos NULL para este parâmetro.

A função ReadFile() retorna quando um erro ocorre ou a quantidade de bytes solicitados é alcançada.

Veja um trecho de código no qual lemos o conteúdo de um arquivo chamado testes.txt:

#include <cstdlib>
#include <iostream>
#include <windows.h>
#define TAM_BUFFER 256 // tamanho do buffer em bytes

using namespace std;

int main(int argc, char *argv[]){
  // nome do arquivo
  CHAR arquivo[] = "C:\\testes.txt";
  
  CHAR buffer[TAM_BUFFER]; // buffer para o conteúdo do arquivo
  DWORD nIn; // bytes lidos
  
  // vamos abrir o arquivo para leitura.
  // se o arquivo não existir uma mensagem de erro é exibida.
  HANDLE hArquivo = CreateFile(arquivo, GENERIC_READ, FILE_SHARE_READ, NULL,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  if(hArquivo == INVALID_HANDLE_VALUE){
    cout << "Erro ao abrir o arquivo: " << GetLastError() << endl;    
......



C# ::: Windows Forms ::: TextBox

Como definir a cor de fundo de uma caixa de texto TextBox do C# Windows Forms via código

Quantidade de visualizações: 8727 vezes
Nesta dica mostrarei como podemos usar a propriedade BackColor da classe Control do C# Windows Forms para definir a cor de fundo de uma caixa de texto TextBox. Note que criei uma TextBox com o nome textBox1 e estou chamando o código a partir do evento Click de um botão Button.

Veja o trecho de código para o exemplo:

private void button1_Click(object sender, EventArgs e){
......



JavaScript ::: JavaScript para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a distância entre dois pontos no plano em JavaScript - JavaScript para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 4183 vezes
Como calcular a Distância Euclidiana entre dois pontos usando JavaScript

Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em JavaScript, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço).

Comece analisando a imagem abaixo:



Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y).

Veja a fórmula:

\[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\]

Agora, jogando os valores dos dois pontos da fórmula nós teremos:

\[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\]

Que resulta em 6,32 (aproximadamente).

E agora veja o código JavaScript completo que define as coordenadas dos dois pontos e mostra a distância entre eles:

<html>
<head>
  <title>Estudos JavaScript</title>
</head>
 
<body>
 
<script type="text/javascript">
  // função que permite calcular a distância
  // entre dois pontos no plano (R2)
  function distancia2d(x1, y1, x2, y2){
    var a = x2 - x1;
    var b = y2 - y1;
    var c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
    return c;
  }
......


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

Distância entre os dois pontos: 6.324555320336759


Delphi ::: VCL - Visual Component Library ::: TListBox

Como selecionar um item de uma ListBox do Delphi em tempo de execução usando a propriedade ItemIndex

Quantidade de visualizações: 15118 vezes
É possível selecionar, em tempo de execução, um dos itens de uma ListBox. Para isso, só precisamos definir um valor para a propriedade ItemIndex. Veja:

procedure TForm1.Button2Click(Sender: TObject);
begin
  // vamos selecionar o segundo item na ListBox
  ListBox1.ItemIndex := 1; // o índice do primeiro item é 0
......


Note que este código não se aplica às ListBoxes de seleção múltipla.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Dicas & Truques ::: Arquivos e Diretórios

Como renomear um diretório em Java usando o método renameTo() da classe File - Arquivos e diretórios em Java

Quantidade de visualizações: 8668 vezes
Nesta dica mostrarei como podemos usar o método renameTo() da classe File da linguagem Java para renomear um diretório. Veja que este método retorna boolean, ou seja, o valor true caso o diretório for renomeado com sucesso e false em caso contrário.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.io.*;
 
public class Estudos{
  public static void main(String[] args){
    // diretorio com o nome antigo
    File dir1 = new File("c:\\java");
     
    // diretorio com o novo nome
    File dir2 = new File("c:\\java_novo");
......


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

Diretorio renomeado com sucesso.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



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