Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres

Como escrever uma função C personalizada que copia os caracteres de uma string para outra string

Quantidade de visualizações: 8359 vezes
Quando precisamos copiar os caracteres de uma string para outra string em C, geralmente usamos a função strcpy(). Para que você entenda como esta função realmente funciona, o código abaixo mostra como escrever uma função personalizada que realiza tal tarefa. Estude-a cuidadosamente. É uma boa forma de entender como percorrer os caracteres de uma string usando ponteiros:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

// função personalizada que copia os caracteres de
// uma string para outra
char *str_copy(char *destino, const char *origem){
   while(*destino++ = *origem++){
     ;;
   }

   return (destino - 1);
}

int main(int argc, char *argv[]){
  char frase1[] = "Gosto de PHP";
  char frase2[50]; // pode receber até 49 caracteres

  // copia a primeira frase para a segunda
  str_copy(frase2, frase1);

  // exibe o resultado
  printf(frase2);

  puts("\n\n");
  system("PAUSE");
  return 0;
}

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

Gosto de PHP

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas

Como usar a classe TField em seus programas Delphi

Quantidade de visualizações: 12052 vezes
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo).

Veja sua posição na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      DB.TField
Esta classe ainda implementa as interfaces Classes.IInterfaceComponentReference e System.IInterface.

A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas:

1) Alterar o valor de um campo em um dataset;

2) Converter o valor de um campo de um tipo para outro tipo;

3) Efetuar validações nos dados informados pelos usuários para determinados campos;

4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição;

5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset;

6) Pesquisar o valor do campo a partir de outro dataset.

Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar.

A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields.

Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo:

        
TADTField          TDateField         TReferenceField   
TAggregateField    TDateTimeField     TSmallIntField   
TArrayField        TFloatField        TSQLTimeStampField   
TAutoIncField      TFMTBCDField       TStringField   
TBCDField          TGraphicField      TTimeField   
TBinaryField       TGuidField         TVarBytesField   
TBlobField         TIDispatchField    TVariantField   
TBooleanField      TIntegerField      TWideStringField   
TBytesField        TInterfaceField    TWordField   
TCurrencyField     TLargeintField     TDataSetField   
TMemoField     
Veja um trecho de código no qual usamos o método FieldByName() da classe TDataSet para obter uma referência a um determinado campo (field) de um ClientDataSet e usamos sua propriedade AsString para obter o valor do campo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button3Click(Sender: TObject);
var
  campo: TField;
begin
  // vamos obter o campo com o nome "titulo" do registro atual
  campo := ClientDataSet1.FieldByName('titulo');

  // vamos mostrar o valor do campo
  ShowMessage('O valor do campo é: ' + campo.AsString);
end;

Ao executarmos este código teremos um resultado parecido com:

"O valor do campo é: Programando em Java".

Esta dica foi escrita e testada no Delphi 2009.


JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como filtrar os elementos de um array em JavaScript usando a função filter() - Vetores e matrizes em JavaScript

Quantidade de visualizações: 2197 vezes
O método filter(), adicionado à linguagem JavaScript por meio do ECMAScript 5 (JavaScript 5, ECMAScript 2009, ES5) nos permite criar um novo vetor contendo apenas os elementos que passarem em um determinado teste, que pode ser uma função de usuário personalizada. Esta função é uma função de callback que será chamada uma vez para cada um dos elementos do vetor.

Para melhor entendimento, comece analisando o trecho de código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<script type="text/javascript">
  function maiorQue10(valor){
    return valor > 10;
  }  

  // vamos criar um vetor de inteiros
  var valores = [2, 6, 32, 9, 3, 21];

  // vamos filtrar o vetor para obter apenas os
  // valores maiores que 10
  var maiores10 = valores.filter(maiorQue10);

  // vamos mostrar o resultado
  window.alert(maiores10);
</script>

Neste código usamos o método filter() para gerar um novo vetor contendo apenas os elementos com valores maiores que 10. Veja que fornecemos uma função como argumento para o método filter() e, dentro dessa função, nós retornamos true ou false para que a filtragem inclua ou não o valor sendo analisado no momento.

Uma função passada para o método filter() pode conter os seguintes argumentos (nessa mesma ordem):

a) O valor do item;
b) O índice do item (opcional);
c) O vetor a partir do qual o método filter() está sendo chamado (opcional).

Veja mais um trecho de código no qual retornamos os elementos de um array maiores que 10 e precedidos de um número par:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<script type="text/javascript">
  function maiorQue10PrecPar(valor, indice, vetor){
    // o primeiro elemento não é precedido por
    // outro. Vamos descartá-lo
    if(indice == 0){
      return false;
    }    

    // é precedido por um número par?
    if(vetor[indice - 1] % 2 == 0){
      // é maior que 10?      
      return valor > 10;
    }

    // nenhuma das condições acima?
    return false;
  }  

  // vamos criar um vetor de inteiros
  var valores = [2, 6, 32, 9, 3, 21];

  // vamos filtrar o vetor para obter apenas os
  // valores maiores que 10 e precedidos por um
  // número par
  var maiores10 = valores.filter(maiorQue10PrecPar);

  // vamos mostrar o resultado
  window.alert(maiores10);
</script>

Execute este código e verá que apenas o valor 32 será retornado, pois ele é o único maior que 10 e precedido por um número par.


C++ ::: Win32 API (Windows API) ::: Processos

Como usar a função EnumProcesses() da WinAPI em seus códigos C++ para obter os identificadores de cada processo ativo no Windows

Quantidade de visualizações: 8143 vezes
A função EnumProcesses() pode ser usada quando queremos obter os ids de todos os processos sendo executados no momento no Windows. Veja o protótipo desta função:

BOOL WINAPI EnumProcesses(
  DWORD* pProcessIds,
  DWORD cb,
  DWORD* pBytesReturned
);


Esta função possui três parâmetros:

a) DWORD* pProcessIds - Um ponteiro para uma matriz que receberá a lista de identificadores dos processos. É importante definir uma matriz um pouco grande, visto que não sabemos de antemão quantos processos serão retornados.

b) DWORD cb - O tamanho da matriz pProcessIds em bytes.

c) DWORD* pBytesReturned - O números de bytes retornados na matriz pProcessIds. Podemos facilmente saber quantos processos foram encontrados simplesmente dividindo o número de bytes retornados pela quantidade de bytes em um DWORD.

Veja um trecho de código no qual listamos os ids de todos os processos sendo executados atualmente.

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <psapi.h>

/*
  Este exemplo usa o header <psapi.h>
  É necessário fazer uma referência à psapi.lib 
*/

using namespace std;

int main(int argc, char *argv[]){
  DWORD processos[1024]; // vamos listar até 1024 processos   
  DWORD pBytesReturned; // bytes retornados pela função EnumProcesses()
  
  // vamos listar os processos
  EnumProcesses(processos, sizeof(processos), &pBytesReturned);
  
  // quantidade de processos retornados
  int retornados = pBytesReturned / sizeof(DWORD);
  
  // agora vamos listar os ids dos processos retornados
  for(int i = 0; i < retornados; i++){
    if(!processos[i] == 0){
      cout << "Processo " << (i + 1) << ": " << processos[i] << endl;
    }          
  }
  
  system("PAUSE");
  return EXIT_SUCCESS;
} 

O id de um processo pode ser fornecido para muitas funções úteis do Windows, entre elas OpenProcess().

Veja um trecho de código no qual fechamos (forçadamente) um processo mediante o fornecimento de seu id:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[]){
  // vamos fechar o processo com o id 3040
  
  // CUIDADO: Verifique o id do processo antes de fechá-lo
  // pode ser que você esteja fechando processos essenciais
  // para o bom funcionamento do Windows
  
  // vamos abrir o processo desejado
  // vai retornar ERROR_INVALID_HANDLE se o processo não
  // puder ser aberto
  HANDLE hProcesso = OpenProcess(PROCESS_TERMINATE, 0, 3040);

  // vamos fechar o processo
  if(TerminateProcess(hProcesso, 0)){
    cout << "Processo finalizado com sucesso." << endl; 
  }
  else{
    cout << "Erro ao finalizar o processo: " << 
      GetLastError() << endl;   
  }

  // vamos fechar o handle do processo
  CloseHandle(hProcesso);
  
  system("PAUSE");
  return EXIT_SUCCESS;
}



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

Apostila C++ - Como retornar o tamanho de uma string em C++ usando a função length() da classe String

Quantidade de visualizações: 24393 vezes
Nesta dica eu mostro como podemos usar a função length() da classe String da linguagem C++ para obter a quantidade de caracteres em uma palavra, frase ou texto. Esta função é definida na classe string da seguinte forma:

                  
size_t length() const;         
Veja agora o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <string>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  string str = "C++";
 
  size_t tamanho = str.length();
  cout << "Esta string contém " << tamanho 
    << " caracteres.\n\n"; 
       
  system("PAUSE"); // pausa o programa
  return 0;
}

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

Esta string contém 3 caracteres.


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

Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00

Quantidade de visualizações: 4394 vezes
Exercícios Resolvidos de Java - Um programa que lê um salário e concede um aumento de 20% para os salários inferiores a R$ 800,00

Pergunta/Tarefa:

A empresa XYZ decidiu conceder um aumento de 20% aos funcionários com salários inferiores a R$ 800,00. Faça um programa Java que solicita o salário do funcionário e mostre o valor do salário reajustado ou uma mensagem, caso o funcionário não tenha direito ao aumento.

Sua saída deverá ser parecida com:

Informe o salário: 520
O salário informado foi: 520.0
O salário reajustado é: 530.4 
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar o salário do funcionário
    System.out.print("Informe o salário: ");
    double salario = Double.parseDouble(entrada.nextLine());
    System.out.println("O salário informado foi: " + salario);
    
    // vamos conceder o aumento ao salário inferior a 800,00
    if(salario < 800.00){
      double novoSalario = salario + (salario * (2.0 / 100.00));
      System.out.println("O salário reajustado é: " + novoSalario);
    }
    else{
      System.out.println("Não tem direito ao reajuste.");
    }
    
    System.out.println("\n");
  }
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

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á 60 usuários muito felizes estudando em nosso site.