Exemplo n.º 1
0
int clasifica(char test){
    if (es_letra(test))
        if (es_vocal(test))
            return vocal;
        else
            return consonante;
    if (es_numero(test))
        return numero;
    return err;
}
Exemplo n.º 2
0
/**
 * \brief detiene el programa para que el usuario ingrese un texto en 'cadena'
 *
 * \param cadena puntero al primer elemento del vector de 'char'
 * \param limite_real cantidad de posiciones del vector cadena
 * \param screen pantalla destino, para imprimir los caracteres
 * 
 * \return 1 si no obtiene una cadena (por cancelar o cerrar la ventana)
 */
int leer_teclado (char *cadena, int limite_real, SDL_Surface *screen)
{
	SDL_Event event;
	int lim = 0; // cantidad de caracteres útiles en la cadena
	SDLKey tecla;

	
	// espera por un evento
	while (SDL_WaitEvent(&event))
	{
		
		// si cierran la ventana
		if (event.type == SDL_QUIT)
		{
			printf("Cancelaron el ingreso de datos\n");
			return 1;
		}
		
		
		// si pulsan una tecla
		if (event.type == SDL_KEYDOWN)		
		{
			tecla = event.key.keysym.sym;
			
			switch (tecla)
			{
				
				case SDLK_ESCAPE:
					printf("Pulsó ESC, cancelando\n");
					return 1;
					break;
					
					
				case SDLK_RETURN:
					cadena[lim] = '\0'; // fin de cadena
					printf("Pulsó ENTER, terminado\n");
					return 0;
					break;
	
					
				case SDLK_BACKSPACE:
					if (lim > 0)
					{
						printf("Quitando:  '%c'\n", cadena[lim-1]);
						borrar(lim - 1, screen);
						lim --;
					}
					else
					{
						printf("Cadena vacia\n");
					}
					break;

					
				case SDLK_SPACE:
				
					if (lim < limite_real - 1)
					{
						agregar(cadena, lim, ' ', screen);
						lim ++;
					}
					else
					{
						printf("Llegó al limite\n");
					}

					break;
					
				default:

					if (lim < limite_real - 1)
					{
						if (es_letra(tecla))
						{
							agregar(cadena, lim, tecla - SDLK_a + 'a', screen);
							lim ++;
						}
						else
						{
							printf("Solo se admiten letras ('a' - 'z')\n");
						}
					}
					else
					{
						printf("Llegó al limite\n");
					}
					
					break;
			}
		}
	}
	
	return 1;
}
Exemplo n.º 3
0
void norma(char * cad)
{
    int i=0,contpal=0,haycoma=0,contesp=0;
    char *act=cad;
    char *poncoma;
    if(es_letra(*act)&&*act>'a'&&*act<'z')
        *act=toupper(*act);
    while(!es_letra(*act))
    {
        while(*(act+i))
        {
            *(act+i)=*(act+1+i);
            i++;
        }
        i=0;
    }
    while(*act)
    {

        while(((!es_letra(*act)&&*act!=' '&&*act!=','))||(!es_letra(*(act-1))&&*act==','))
        {
            while(*(act+i))
            {
                *(act+i)=*(act+i+1);
                i++;
            }
            i=0;
            act--;
        }
        if(*act==' ')
        {
            while(*(act+i)==' ')
            {
                contesp++;
                i++;
            }
            i=0;
            contesp--;
            if(contesp>0)
            {
                while(*(act+i+contesp-1))
                {
                    *(act+i)=*(act+i+contesp);
                    i++;
                }
                *(act+i)='\0';
                i=0;
            }
            contesp=0;
        }
        if(*(act)==',')
            haycoma++;
        if(haycoma==1&&*act==','&&!es_letra(*(act-1)))
        {
            while(!es_letra(*(act-i)))
            {
                *(act-i-1)=*(act-i);
                i++;
            }
            act=act-i;
            i=0;
        }
        if(es_letra(*act-2)&&*(act-1)==','&&es_letra(*act))
        {
            while(*(act+i))
            {
                *(act+strlen(act)-i)=*(act+strlen(act)-i-1);
                i++;
            }
            *act=' ';
            i=0;
        }
        if(es_letra(*act)&&(!es_letra(*(act-1))||act==cad))
        {
            if(*act>='a'&&*act<='z')
                *act=toupper(*act);
            act++;
            while(es_letra(*act))
            {
                if(*act>='A'&&*act<='Z')
                    *act=tolower(*act);
                if(*(act+1)==',')
                    haycoma=1;
                act++;
            }

            contpal++;
            if(contpal==1)
                poncoma=act;
            act--;
        }
        act++;
    }
    act--;
    if(!haycoma)
    {
        while((poncoma-1)!=act)
        {
            *(act+1)=*act;
            act--;
        }
        *poncoma=',';
    }
}