Escreva uma única instrução que possibilite a execução das tarefas a seguir. Suponha que as variáveis c (que armazena um caractere), x, y e z sejam do tipo int, as variáveis d, e e f sejam do tipo double, a variável ptr seja do tipo char * e os arrays s1[100] e s2[100] sejam do tipo char.
a) Converta o caractere armazenado na variável c em uma letra maiúscula. Atribua o resultado à variável c.
b) Determine se o valor da variável c é um dígito. Use o operador condicional conforme mostrado nas figuras 8.2 a 8.4 para imprimir “ é um “ ou “ não é um “ quando o resultado for exibido.
c) Converta a string “1234567” em long e imprima o valor obtido.
d) Determine se o valor da variável c é um caractere de controle. Use o operador condicional para imprimir “ é um “ ou “ não é um “ quando o resultado for exibido.
e) Leia uma linha de texto para o array s1 a partir do teclado. Não use scanf.
f) Imprima a linha de texto armazenada no array s1. Não use printf.
Passo 1
E aí meus queridos!! Tudo bem com vocês??
Hoje vamos falar sobre algumas funções que podem fazer muita diferença na hora de programar! Bora lá??
- Para convertermos um caractere ou uma string que possui letra minúscula para maiúscula, precisamos usar a função toupper, que possui a seguinte sintaxe: toupper(caractere), sendo caractere a letra que quer mudar.
- Para sabermos se um caractere é um digito ou não, podemos usar a função isdigit, que tem como sintaxe isdigit(caractere).
- Agora vamos entender um pouco sobre a função atol, sua sintaxe funciona da seguinte maneira: atol(string) sendo string possíveis números.
- Aos poucos vamos entendendo mais sobre as funções né! Vamos praticar um pouco usando a função iscntrl. Sua sintaxe trabalha da seguinte forma: iscntrl ( caractere), ele confere se o caractere é um caractere de controle.
- Podemos também ler uma string apenas pelo teclado sem usar a função scanf. Para isso precisamos entender um pouco sobre stdin e fgets.
- Agora vamos entender um pouco sobre a função puts. Temos como sintaxe assim: puts (string). Essa função é utilizada quando não queremos usar printf para imprimir uma string.
Então poderemos resolver a questão da seguinte maneira:
c = toupper (c);
Passo 2
Porém nosso exercício pediu que após fizesse a comparação imprimisse as frases ‘é um’ ou ‘não é um’ com um operador condicional. E para nossa alegria esse operador é bem fácil de lembrar, basta usarmos o (? : ) para imprimir a condicional.
Então a letra b ficaria da seguinte maneira:
printf( “ ‘%c’ %sdigit\n”, c, isdigit( c ) ? “é um” : “não é um”);
Passo 3
Então nossa sintaxe dessa questão poderia ficar da seguinte maneira:
printf(“%ld\n”, atol(“987654”) );
Passo 4
Mas o que são caracteres de controle?
Caracteres de controle são caracteres como: Backspace, Escape, Newline. Caracteres que não poderiam ser imprimidos.
Então nossa questão fica assim:
Printf( “ ‘c’ %scaractere de controle\n”, c , iscntrl( c ) : “é um” : “não é um”);
Passo 5
Fgets é a função que usamos para imprimir um caractere a partir do teclado. Sua sintaxe fica assim:
Fgets(string, tamanho, stdin), sendo: string – a variável que vai armazenar o texto que entrar pelo teclado; tamanho – quantidade de caracteres disponíveis para a string; stdin – informando que pegaremos a string pelo dispositivo de entrada padrão: no caso, o teclado.
Então teríamos esse resultado:
fgets( s1, 100, stdin);
Passo 6
Então nossa questão ficaria assim:
puts(s1);
Ufa... Acabamos por aqui!! Dê Ctrl+n no seu compilador e bora para o restante do exercício!!
Resposta
- c = toupper (c);
- printf( “ ‘%c’ %sdigit\n”, c, isdigit( c ) ? “é um” : “não é um”);
- printf(“%ld\n”, atol(“987654”) );
- Printf( “ ‘c’ %scaractere de controle\n”, c , iscntrl( c ) : “é um” : “não é um”);
- fgets( s1, 100, stdin);
- puts(s1);