{"id":17754906,"url":"https://github.com/ignaciopardo/td2_tp2","last_synced_at":"2025-04-01T11:11:51.183Z","repository":{"id":115949699,"uuid":"419936922","full_name":"IgnacioPardo/TD2_TP2","owner":"IgnacioPardo","description":"TD2_TP2","archived":false,"fork":false,"pushed_at":"2021-10-31T15:05:21.000Z","size":339,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-06T05:37:11.500Z","etag":null,"topics":["c","linked-list","student-project"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IgnacioPardo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-22T02:09:32.000Z","updated_at":"2022-09-16T18:50:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"1c8f6528-1d08-4b3a-84bf-917675ffcadd","html_url":"https://github.com/IgnacioPardo/TD2_TP2","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioPardo%2FTD2_TP2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioPardo%2FTD2_TP2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioPardo%2FTD2_TP2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioPardo%2FTD2_TP2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgnacioPardo","download_url":"https://codeload.github.com/IgnacioPardo/TD2_TP2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246628229,"owners_count":20808106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","linked-list","student-project"],"created_at":"2024-10-26T14:23:01.389Z","updated_at":"2025-04-01T11:11:51.166Z","avatar_url":"https://github.com/IgnacioPardo.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TD2_TP2\n\n### 💾 Trabajo Practico 2 - [Tecnologia Digital II UTDT](https://www.utdt.edu/ver_contenido.php?id_contenido=19866\u0026id_item_menu=31534)\n\n### 🧠 **Integrantes**: Luca Mazzarello - Camila Migdal Mamrud - Ignacio Pardo\n\n### 👨🏻‍🏫 **Profesor**: David Alejandro Gonzalez Marquez\n\n### 🗃 **Estructura del repositorio**:\n  \n\n```C\t\n📄container.c\t\n//Definicion de las funciones de contenedores\n\t\n\tint len(char* s);\n\t//Longitud del string s\n\n\tint dupStr(char* src, char** dst);\n\t//Duplica un string. Debe contar la cantidad de caracteres totales de src y solicitar la memoria equivalente. Luego, debe copiar todos los caracteres a esta nueva area de memoria. El puntero al nuevo string se almacenara en el doble puntero dst. Ademas, como valor de retorno se debe retornar el tamaño del string\n\n\tchar normalizeChar(char c);\n\t//Retorna el char c en mayuscula\n\n\tint equalStr(char* s1, char* s2);\n\t//Evalua la igualdad entre los strings s1 y s2 caracter por caracter\n\n\tint signo(int a);\n\t//Retorna el signo (1/-1) del entero a pasado por parametro, retorna 0 si a = 0\n\n\tint cmpStr(char* s1, char* s2);\n\t//Compara dos strings en orden lexicografico. Retorna (0 si son iguales, 1 si s1\u003cs2, −1 si s2\u003cs1)\n\n\tvoid split(char* source, int count, char** s1, char** s2);\n\t//A partir del string en source, genera dos nuevos strings s1 y s2. s1 debe contener los primeros count caracteres del string source, mientas que s2 debe contener los caracteres restantes. La memoria del string source pasado por parametro debe ser liberada. En caso que count supere la cantidad de caracteres totales de source, se debe retornar en s2 un string vacio. El parametro count es siempre un numero positivo\n\n\tint getIndex(char * s);\n\t//Retorna el indice del contenedor a donde corresponde el string s\n\n\tint contains(struct container* c, char* value);\n\t//Determina la cantidad de veces que value est ́a definido dentro de container. Debe retonar la cantidad de apariciones del dato.\n\n\tvoid sortedAdd(struct container* c, char* value);\n\t//Agregar el string value pasado por par ́ametro dentro del container, respetando los invariantes de la estructura indicados anteriormente.\n\n\tint inverseDelete(struct container* c, char* value);\n\t//Borra todos los datos del slot al que pertenece el string value, menos todas las copias que existan del string value. Debe retonar la cantidad de datos que fueron borrados.\t\n\n\tstruct container* newContainer();\n\t//Solicita memoria e inicializa una estructura container vacia.\n\n\tvoid deleteContainer(struct container* c);\n\t//Borra toda la memoria solicitada dentro de un container.\n\n\tvoid printContainer(struct container* c);\n\t//Imprime en pantalla el container pasado por parametro.\n\n\n📄main.c\n//tests\n\n\tint test_dup1();\n\t//String vacio\n\tint test_dup2();\n\t//String de un caracter\n\tint test_dup3();\n\t//String que incluya todos los caracteres validos distintos de cero\n\tint test_cmpStr1();\n\t//Dos string vacios\n\tint test_cmpStr2a();\n\t//Dos strings de 1 caracter iguales\n\tint test_cmpStr2b();\n\t//Dos strings de 1 caracter 'a' \u003c 'b'\n\tint test_cmpStr2c();\n\t//Dos strings de 1 caracter 'b' \u003e 'a'\n\tint test_cmpStr3a();\n\t//Strings iguales hasta un caracter\n\tint test_cmpStr3b();\n\t//Strings iguales hasta un caracter\n\tint test_cmpStr4a();\n\t//Dos strings diferentes s1 \u003c s2\n\tint test_cmpStr4b();\n\t//Dos strings diferentes s1 \u003e s2\n\tint test_cmpStr4c();\n\t//Dos strings diferentes s1 \u003c s2 (s2 caps)\n\tint test_split1a();\n\t//Un string vacio, count = 1\n\tint test_split1b();\n\t//Un string vacio, count = 2\n\tint test_split1c();\n\t//Un string vacio, count = 3\n\tint test_split2a();\n\t//Un string de un caracter, count = 1\n\tint test_split2b();\n\t//Un string de un caracter, count = 2\n\tint test_split2c();\n\t//Un string de un caracter, count = 3\n\tint test_split3a();\n\t// Un string de multiples caracteres, count = 1\n\tint test_split3b();\n\t// Un string de multiples caracteres, count = 2\n\tint test_split3c();\n\t// Un string de multiples caracteres, count = 5\n\tint test_sortedAdd1();\n\t//Agregar un dato por lista\n\tint test_sortedAdd2();\n\t//Sobre el primer caso, agregar un dato mayor a todos por lista\n\tint test_sortedAdd3();\n\t//Sobre el primer caso, agregar un dato menor a todos por lista\n\tint test_sortedAdd4();\n\t//Sobre el primer caso, agregar un dato que ordenado termine entre dos elementos\n\tint test_contains1();\n\t//Dada una estructura, consultar si existe un dato que se ubique como ultimo dato de alguna de las listas\n\tint test_contains2();\n\t//Dada una estructura, consultar si existe un dato que se ubique como primer dato de algunade las listas\n\tint test_contains3();\n\t//Dada una estructura, consultar si existe un dato que se ubique en el medio de una lista\n\tint test_contains4();\n\t//Dada una estructura, consultar si existe un dato que no este en la lista\n\tint test_inverseDelete1();\n\t//Para un dato que se ubique al comienzo de una lista\n\tint test_inverseDelete2();\n\t//Para un dato que se ubique al final de una lista\n\tint test_inverseDelete3();\n\t//Para un dato que se ubique entre dos nodos de una lista\n\n```\t\t\n\n        \n📅 **Fecha**: Octubre 2021\n\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\u003cimg width=\"100\" alt=\"micro_DiTella\" src=\"https://user-images.githubusercontent.com/65306107/132214134-ac5df2b8-353e-46b2-9c6e-ab9f0429a767.png\"\u003e \n\n### 🎓 Tecnologia Digital II UTDT\n\n[![Linux Build Status](https://github.com/IgnacioPardo/TD2_TP2/blob/main/badge_Linux.svg)](https://replit.com/@IgnacioPardo/TD2TP2)\n[![macOS Build Status](https://github.com/IgnacioPardo/TD2_TP2/blob/main/badge_macOS.svg)](https://github.com/IgnacioPardo/TD2_TP2)\n\n```Compiled with gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04.5 LTS) ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignaciopardo%2Ftd2_tp2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignaciopardo%2Ftd2_tp2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignaciopardo%2Ftd2_tp2/lists"}