Skip to content

Biblioteca em C para simular dicionários do Python.

Notifications You must be signed in to change notification settings

okkvlt/dictionary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

Dictonary

Biblioteca em C para simular os dicionários do Python.

▪ Importação

Para utilizar a biblioteca, é preciso importá-la para o arquivo do seu projeto.

#include "dict.h"

▪ Criação de Dicionário

Tendo importado a biblioteca, um dicionário pode ser criado passando a função create_dict() para uma variável do tipo No *.

No *dicionario = create_dict();

▪ Print do Dicionário

Também é possível printar o dicionário completo utilizando a função show_dict(). Essa função é do tipo void e não retornará nada.

Sintaxe:

void show_dict(No *dicionario);

Exemplo:

show_dict(dicionario);

Retorno:

{}

▪ Inserção de Valores

Tendo criado um dicionário, é possível inserir valores executando a função insert_key(). Essa função é do tipo bool e retornará true caso a inserção seja bem sucedida e false caso a inserção falhe. O único erro possível na inserção de valores refere-se a memória insuficiente.

Sintaxe:

bool insert_key(No *dicionario, char *key, char *meaning);

Exemplo:

char keys[3][64] = {"Arroz",
                    "Árvore",
                    "Espanha"};

char meanings[3][64] = {"Comida típica.",
                        "Ser vivo.",
                        "País europeu."};
for (int i = 0; i < 3; i++)
    insert_key(dicionario, keys[i], meanings[i]);

show_dict(dicionario);

Retorno:

{'Arroz': 'Comida típica.', 'Árvore': 'Ser vivo.', 'Espanha': 'País europeu.'}

▪ Remoção de Valores

Também é possível deletar valores do dicionário utilizando a função delete_key(). Essa função é do tipo bool e retornará true caso a inserção seja bem sucedida e false caso a inserção falhe. Os únicos erros possíveis na deleção de valores referem-se a quando o dicionário é vazio ou quando a chave informada não existe (NULL).

Sintaxe:

bool delete_key(No *dicionario, char *key);

Exemplo:

delete_key(dicionario, keys[1]);

show_dict(dicionario);

Retorno:

{'Arroz': 'Comida típica.', 'Espanha': 'País europeu.'}

▪ Remoção de Dicionário

Para remover um dicionário por completo, basta utilizar a função delete_dict(). Essa função é do tipo void e não retornará nada.

Sintaxe:

void delete_dict(No *dicionario);

Exemplo:

delete_dict(dicionario);

▪ Número de Chaves

Para obter o número de chaves em um dicionário, basta executar a função num_of_keys(). Essa função é do tipo int e retornára o número de chaves dentro do dicionário.

Sintaxe:

int num_of_keys(No *dicionario);

Exemplo:

int n = num_of_keys(dicionario);

▪ Ordenação de Dicionário

Outra função existente é a de organizar alfabeticamente as chaves de um dicionário. Para chamar essa função, basta utilizar sort_dict(). Essa função é do tipo void e não retornará nada.

Sintaxe:

void sort_dict(No *dicionario);

Exemplo:

show_dict(dicionario);

sort_dict(dicionario);

show_dict(dicionario);

Retorno:

{'Espanha': 'País europeu.', 'Arroz': 'Comida típica.'}
{'Arroz': 'Comida típica.', 'Espanha': 'País europeu.'}

▪ Pesquisa de Valores

A biblioteca também contém diferentes funções de pesquisa de conteúdos e chaves no dicionário. Essas funções são search_meaning_byKey(), search_id_byKey(), search_meaning_byId() e search_key_byId(). Tais funções realizam, respectivamente, uma busca do conteúdo de determinada chave, uma busca do id de determinada chave, uma busca do conteúdo de determinado id e, por fim, uma busca da chave de um determinado id. As funções que retornam strings, ou seja, as que procuram por chaves e conteúdos, retornarão NULL caso a busca não tenha sucesso. Por outro lado, a função que busca por id retornará void caso a busca não tenha sucesso.

Sintaxes:

char *search_meaning_byKey(No *dicionario, char *key);
char *search_meaning_byId(No *dicionario, int id);
char *search_key_byId(No *dicionario, int id);
int search_id_byKey(No *dicionario, char *key);

Exemplo:

show_dict(dicionario);

char key[] = "Arroz";
char *string = malloc(sizeof(char) * 64);

string = search_meaning_byKey(dicionario, key);

if (string != NULL)
    printf("\nSignificado de '%s': '%s'\n", key, string);

Retorno:

{'Arroz': 'Comida típica.', 'Espanha': 'País europeu.'}
Significado de 'Arroz': 'Comida típica.'

▪ Utilidades

▪ Alteração de Tamanho das Strings

Caso sinta necessidade, é possível alterar o tamanho das strings dos dicionários. Por padrão, o tamanho é de 64 bytes, ou seja, 64 caracteres. Para alterar isso, vá na aba de pré-processamento no arquivo dict.c e altere o macro MAX para o tamanho desejado.

Padrão:

#define MAX 64

Alteração:

#define MAX [insira_novo_tamanho]

About

Biblioteca em C para simular dicionários do Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages