/* Escreva uma função com protótipo int converte (char *ch); que devolve 0 se *ch é um dígito, 1 se *ch é uma letra (maiúscula ou minúscula) e 2 caso contrário. Além disso, se *ch for uma letra, converte para a letra maiúscula correspondente, senão *ch permanece inalterado. Escreva um programa que leia uma frase terminada por ponto e imprima a frase convertida para maiúsculas, removendo caracteres que não forem letras ou números. */ #include int converte (char *ch); /* converte devolve 0 se *ch for número, 1 se for letra (e modifica *ch para a letra maiúscula) 2 caso contrário */ int converte (char *ch) { int dev = 2; if (*ch >= '0' && *ch <= '9'){ dev = 0; } else if (*ch >= 'a' && *ch <= 'z'){ dev = 1; *ch = *ch - 'a' + 'A'; } else if (*ch >= 'A' && *ch <= 'Z'){ dev = 1; } return (dev); } int main() { char c; int valor; printf("Digite a frase terminada por ponto: "); do{ scanf("%c", &c); valor = converte(&c); if (valor == 0 || valor == 1 || c == ' '){ printf("%c", c); } } while (c != '.'); printf("\n"); return (0); }