Escreva um programa semelhante ao anterior em que sejam apresentados apenas os valores das variáveis de ambiente (à direita do sinal =).

Passo 1

Fala aí! Cara, como sugerido pelo enunciado, essa aqui é bem semelhante à questão anterior, então, se não tiver visto ainda, recomendo dar uma passadinha lá na questão 8 deste mesmo capítulo. Lá nos escrevemos um programa que, quando executado, imprime várias strings mais ou menos assim:

COMSPEC=E: \WINDOWS\COMMAND.COM

PROMPT=$p$g

PATH=E:\WINDOWS;E:\WINDOWNS\COMMAND;C:\DOSFAX;C:\DOS;C:\BATS

TEMP=C:\TMP

Agora, nos é pedido para alterar este programa de modo que os nomes das variáveis de ambiente – qualquer coisa que esteja da esquerda de um sinal de igual (=) – não sejam impressos. Bom, seria muito fácil se existisse uma função capaz de reconhecer esse caractere “=“, aí bastaria mandar imprimir qualquer coisa que estivesse à sua direita, né?

Então... Deixa eu te reapresentar àquela famosa função strchr! Esse cara faz exatamente o que queremos, olha só como vai ficar a sintaxe:

Basicamente, quando escrevemos strchr(*p++, ‘=’), estamos gerando um ponteiro que aponta para a primeira ocorrência do caractere = em *p. Como não queremos imprimir também o sinal de igualdade, adicionamos um +1 para pular para o próximo caractere, aí basta imprimir a string encontrada e incrementar p. 😊

Resposta