//Breve estudo da função scanf(), e formatação de entrada para strings. // Pedro Soares da Silva Santos #include #include //Necessário caso se execute em janela temporária, p.e. Dev-C++ (*1 continua na l. 46) int main() { char frase[16]="\0"; // Preparando o vetor com "\0" (vazio) para o caso de *nenhum* caractere ser lido. int i; printf("Digite sua frase (normal): "); // Digite "Rio de Janeirooo", recebe "Rio de Janeiro" scanf("%15[^\n]",frase); // Para apenas no "ENTER" ou nos 15 caracteres (garante integridade da memória) printf("Frase: \"%s\"\n",frase); fflush(stdin); // Necessário para evitar que a sobra da string seja recebida pelo próximo scanf(). frase[0]='\0'; // Limpa o vetor para a próxima printf("Digite sua frase: "); // Digite "Rio d", recebe "Rio" scanf("%15s",frase); // Recebe apenas 15 caracteres "não-brancos" printf("Frase: \"%s\"\n",frase); fflush(stdin); // Necessário para evitar que a "sobra" da string seja recebida pelo próximo scanf(). frase[0]='\0'; printf("Digite sua frase (para no \"e\"): "); // Digite "Rio de", recebe "Rio d" scanf("%15[^e\n]",frase); // Recebe apenas "Rio d" pois para no "e", "\n" incluído para liberar caso todos sejam válidos printf("Frase: \"%s\"\n",frase); fflush(stdin); frase[0]='\0'; // Abaixo: digite "Rio de", recebe "Rio d" printf("Digite sua frase (para em qualquer que nao seja \" \", \"d\", \"i\", \"o\" nem \"r\": "); scanf("%15[Rio d]",frase); // Recebe apenas "Rio d" pois para depois de " ", "d", "i", "o" e "R" printf("Frase: \"%s\"\n",frase); fflush(stdin); frase[0]='\0'; printf("Digite sua frase - caracteres de a a h, A a H: "); //Digite, p.e. "abc-def-ghi", recebe "abc-def-gh" scanf("%15[a-hA-H]",frase); // Recebe das letras 'a' até 'h' e além do caractere '-' pois está no fim (ou início) da expr. printf("Frase: \"%s\"\n",frase); fflush(stdin); frase[0]='\0'; printf("Digite sua frase com caracteres exceto de 'a' a 'i' maiusculo ou minusculo: "); scanf("%15[^a-iA-I\n]",frase); // Recebe qualquer exceto de 'a' a 'i' maiúsculo ou minúsculo printf("Frase: \"%s\"\n",frase); system("PAUSE"); // (*1) Evita que a janela temporária (em MS-Windows) se feche após a execução return(0); }