Programacion

//FUNCIONES C

— Convertir letra a MAYUSC (-32 ASCII) —
char toUpper(char); //Header
char toUpper(char letra) { //archivo.c
if (letra >= ‘a’ && letra <= ‘z’) {
letra = letra – 32;
return letra;
}
else if (letra >= ‘A’ && letra <= ‘Z’){
return letra;
}
else if(letra == ‘ ‘) {
return letra;
}
}

— Control de frase (Letras+Espacio) —
int ctrLetra(char[]);//.header
int ctrLetra(char frase[]) {//Archivo.c
int i = 0, ctrl = 0;
for (i = 0; frase[i] != ‘\0’; i++) {
if (frase[i] >= ‘A’ && frase[i] <= ‘Z’) { //Intervalo que admitimos como bueno
ctrl = 1;//Todo ok
} else { //Datos no validos
ctrl = 0;//Si encuentra no valido sale
break;
}
}
return ctrl;//Devuelve 0 si digitos no admitidos/1 todo OK
}

 

— Contar Palabras en frase (Por nº Espacios) —
int cntWords(char[]) {//Archivo.h
int cntWords(char frase[]) {//Archivo.c
int flag, i, j;
for (flag = 0, i = 0, j = 0; frase[i] != ‘\0’; i++) {
if (frase[i] == ‘ ‘) {
flag = 0; //bandera en caso de BLANK
}
else {
if (flag == 0) {
j++;//Contador palabras
}
flag = 1;
}
}
return j;
}

— Buscar numero de apariciones de una Letra/Numero (En una frase/palabra) —
int fndDgt(char[])//Archivo.h
int fndDgt(char frase[]) {//Archivo.c
int i, j;
for (i = 0; frase[i] != ‘\0’; i++) {
if (frase[i] == ‘x’)//x = Dato que buscamos
j++;//Contador coincidencias
}
return j;
}

— Formula de Julio (Suma de los caracteres de un int -) —

int jForm(int);//Archivo.h
int jForm(int sum){
for (sum; sum > 0;) {
num += sum % 10;
sum /= 100;//XCeros = nums de X en X – 2 en dos en este caso
}
return sum;
}

— Mezlcar cadenas (Combinar diferentes letras) —

— Creacion de Estructura (Y operaciones) —
struct Datos {//Declaracion de Estructuras
char *palabra; //Cadena de Palabras
int ind;
};

struct Datos * CrearLista(int n) {//Funcion para crear lista de palabras dentro de estructura
struct Datos *list; //
list = (struct Datos*)malloc(n * sizeof(struct Datos));//Reserva de Memoria
return list;
}

struct Datos PedirDatos() {//Funcion para crear la estructura
struct Datos temp; //Var Temporal de Tipo Struct (No optimo – Nita malloc, por eso la devolvemos)
char word[50];
int ind;

scanf(“%s”,&word);//recogemos datos
scanf(“%d”, &ind);

temp.palabra = (char *)malloc(strlen(word) * sizeof(char));//Reservar memoria de la palabra
strcpy(temp.palabra, word);//Copiamos palabra
temp.ind = ind;//Guardamos indice
return temp;//Devuelve la estructura temporal – No se guarda
}

void Liberar(struct Datos a) {//Recibe una estructura tipo Datos // a = nom Struct
free(a.palabra); //Liberar variable dentro de struct
}

void LiberarLista(struct Datos * a) { //recibe una struct * // a = nom Struct
free(a);//Libera la estructura
}

void Imprimir(struct Datos a) { //Imprimir datos de estructura
printf(“palabra: \”%s\” ind = %d.\n”, a.palabra, a.ind);
}

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *