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á??

  1. 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.
  2. Então poderemos resolver a questão da seguinte maneira:

    c = toupper (c);

    Passo 2

  3. Para sabermos se um caractere é um digito ou não, podemos usar a função isdigit, que tem como sintaxe isdigit(caractere).
  4. 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

  5. Agora vamos entender um pouco sobre a função atol, sua sintaxe funciona da seguinte maneira: atol(string) sendo string possíveis números.
  6. Então nossa sintaxe dessa questão poderia ficar da seguinte maneira:

    printf(“%ld\n”, atol(“987654”) );

    Passo 4

  7. 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.
  8. 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

  9. 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.
  10. 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

  11. 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 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

  1. c = toupper (c);
  2. printf( “ ‘%c’ %sdigit\n”, c, isdigit( c ) ? “é um” : “não é um”);
  3. printf(“%ld\n”, atol(“987654”) );
  4. Printf( “ ‘c’ %scaractere de controle\n”, c , iscntrl( c ) : “é um” : “não é um”);
  5. fgets( s1, 100, stdin);
  6. puts(s1);