Você está aqui: C ::: Dicas & Truques ::: Data e Hora

Como retornar o dia do mês como um inteiro ou uma string

Quantidade de visualizações: 3307 vezes
Em algumas situações gostaríamos de obter o dia do mês como um inteiro ou uma string (uma matriz de char). Nesta dica eu mostro como isso é possível. Observe 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)
----------------------------------------------------------------------

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

int main(int argc, char *argv[]){
  time_t data_hora_segundos; // guarda os segundos deste 01/01/1970
  struct tm *timeinfo; // declara uma estrutura tm
  time(&data_hora_segundos); // preenche a variável data_hora_segundos
  // preenche a estrutura timeinfo
  timeinfo = localtime(&data_hora_segundos);

  // obtém o dia do mês atual como um inteiro
  int dia_mes = timeinfo->tm_mday;
  printf("O dia do mês atual é: %d\n\n", dia_mes);

  system("PAUSE");
  return 0;
}

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

O dia do mês atual é 6.

Para obter o dia do mês como um inteiro eu usei o membro tm_mday da estrutura tm. O valor contido neste membro varia de 1 a 31. Note ainda que usei a função localtime() para preencher a estrutura tm com os valores de data e hora local de acordo com as configurações regionais da máquina.

Vamos ver agora como obter o dia do mês como uma string. Observe o código abaixo:

----------------------------------------------------------------------
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 <time.h>

int main(int argc, char *argv[]){
  time_t data_hora_segundos; // guarda os segundos deste 01/01/1970
  struct tm *timeinfo; // declara uma estrutura tm
  time(&data_hora_segundos); // preenche a variável data_hora_segundos
  // preenche a estrutura timeinfo
  timeinfo = localtime(&data_hora_segundos);

  // obtém o dia do mês atual como uma matriz de char
  char mensagem[80];
  strftime(mensagem, 80, "O dia do mês é: %d", timeinfo);

  // mostra o resultado
  printf("%s\n\n", mensagem);

  system("PAUSE");
  return 0;
}

Ao executar este código teremos o resultado:

O dia do mês é: 07.

Desta vez eu usei a função strftime() para copiar a string formatada para a variável mensagem. O especificador "%d" permite retornar o dia do mês no formato DD, ou seja, com dois dígitos.

Link para compartilhar na Internet ou com seus amigos:

C ::: Estruturas de Dados ::: Lista Ligada Simples

Estrutura de Dados em C - Como inserir nós no final de uma lista singularmente ligada em C

Quantidade de visualizações: 7991 vezes
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:

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

struct No{
  int valor;
  struct No *proximo;
};

Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código:

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

// estrutura Nó
struct No{
  int valor;
  struct No *proximo;
};
// fim da estrutura Nó

// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
  if(n != NULL){
    do{
      printf("%d\n", n->valor);
      n = n->proximo;
    }while(n != NULL);
  }
  else
    printf("A lista esta vazia\n\n");
}

// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
  // reserva memória para o novo nó
  struct No *novo = (struct No*)malloc(sizeof(struct No));
  novo->valor = v;

  // verifica se a lista está vazia
  if(n == NULL){
    // é o primeiro nó...não deve apontar para
    // lugar nenhum
    novo->proximo = NULL;
    return novo; // vamos retornar o novo nó como sendo o início da lista
  }
  else{ // não está vazia....vamos inserir o nó no final
    // o primeiro passo é chegarmos ao final da lista
    struct No *temp = n; // vamos obter uma referência ao primeiro nó
    // vamos varrer a lista até chegarmos ao último nó
    while(temp->proximo != NULL){
      temp = temp->proximo;
    }
    // na saída do laço temp aponta para o último nó da lista
  
    // novo será o último nó da lista...o campo próximo dele deve
    // apontar para NULL
    novo->proximo = NULL;
    // vamos fazer o último nó apontar para o nó recém-criado
    temp->proximo = novo;
    return n; // vamos retornar o início da lista intacto
  }
}

int main(int argc, char *argv[])
{
  // declara a lista
  struct No *inicio = NULL;

  // vamos inserir quatro valores no final
  // da lista
  inicio = inserir_final(inicio, 45);
  inicio = inserir_final(inicio, 3);
  inicio = inserir_final(inicio, 98);
  inicio = inserir_final(inicio, 47);

  // vamos exibir o resultado
  exibir(inicio);

  system("pause");
  return 0;
}



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

Como concatenar apenas parte de uma string à outra string usando a função strncat() da linguagem C

Quantidade de visualizações: 9820 vezes
Muitas vezes precisamos adicionar à uma string apenas alguns caracteres de outra, ou seja, não queremos concatenar as duas strings completamente; apenas parte da segunda. Para isso podemos usar a função strncat(). Veja o protótipo e explicação desta função:

char *strncat(char *str1, const char *str2, size_t n);


Aqui a quantidade n de caracteres da string str2 será anexada ao final da string str1. O caractere de fim de string (null character) da str1 é sobrescrito durante a operação e anexado novamente assim que os caracteres desejados da str2 sejam copiados. Veja um exemplo:

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

int main(int argc, char *argv[])
{
  char texto[] = "Gosto muito de ";
  char palavra[] = "C++";

  /*
  Na segunda sequencia de caracteres nós temos "C++", mas
  queremos anexar à primeira sequencia apenas "C". Veja
  como isso é feito
  */

  strncat(texto, palavra, 1);

  // exibe o resultado
  puts(texto);

  system("pause");
  return 0;
}

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

Gosto muito de C


C ::: Dicas & Truques ::: Matemática e Estatística

Como testar se um número é primo em C

Quantidade de visualizações: 2459 vezes
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos.

É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par.

Veja agora um código C completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não:

----------------------------------------------------------------------
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>
 
int main(int argc, char *argv[]){
  int numero, i;
  int primo = 1; // verdadeiro, true
	
  // vamos solicitar um número inteiro positivo
  printf("Informe um número inteiro positivo: ");
  scanf("%d", &numero);
    
  // o número é negativo?
  if(numero < 0){
    printf("Número inválido.\n\n");
  }
  // é 0 ou 1?
  else if((numero == 0) || (numero == 1)){
    printf("Número válido, mas não é primo.\n\n");
  }
  // passou até aqui. Vamos testar se o número é primo
  else{
    for (i = 2; i <= (numero / 2); i++){
      // se passar no teste, não é primo
      if (numero % i == 0) {
        primo = 0; // recebe false
        break;
      }
    }
      
    if(primo){
      printf("O número informado é primo\n\n");
    }
    else{
      printf("O número informado não é primo\n\n");
    }
  }
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Informe um número inteiro positivo: 9
O número informado não é primo


Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

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