Implemente as seguintes funções retiradas de enunciados de exames.

3.18int Is_Alfa_Digit(char *string)

Esta função recebe uma string, e tem por objetivo verificar se essa string contém alternadamente um caractere alfabético seguido de um dígito. O primeiro caractere deverá ser sempre alfabético.

Is_Alfa_Digit(“”)

Is_Alfa_Digit(“1”)

Is_Alfa_Digit(“A”)

Is_Alfa_Digit(“X, Y”)

Is_Alfa_Digit(“X7Y”)

Is_Alfa_Digit(“1A2”)

Passo 1

Fala aí! Essa aqui vai dar um trabalhinho, mas segura minha mão e desiste não. Antes de mais nada, vou ressaltar o que sempre digo para questões de programação: qualquer programa pode ser escrito de diversas maneiras, o jeito que eu escolhi fazer pode não ser o mesmo que você escolheu, e isso não quer dizer necessariamente que um deles esteja errado.

Beleza, dito isso, vamos começar definindo as variáveis que iremos utilizar:

Como de costume, i será utilizado para percorrer nossa string, verdade é o valor que retornaremos lá no final como 0 para ou 1 para , a princípio, o definimos como 0, e len é o que chamamos o comprimento da string.

Passo 2

Feito isso, vamos abrir um laço for da seguinte forma:

Se liga, dentro desse for, abrimos uma condição if meio intimidadora. Ela quer dizer mais ou menos o seguinte:

Se o caractere na posição s[i] for uma letra E o caractere na posição s[i+1] for um número

Faça verdade = 1;

Esses isalpha e isdigit são funções conhecidas que usamos para identificar quando um caractere é alfabético ou numérico, respectivamente. Assim, quando ambas as condições forem satisfeitas, atualizamos o valor da variável verdade e nossa função passa a retornar o valor , pelo menos por enquanto.

Passo 3

No entanto, ainda precisamos lidar com uma situação. Se encerrarmos a função por aqui, quando inserirmos uma string composta por uma única letra, o valor retornado será , pois a segunda parte daquele if anterior não é satisfeita. Para que passe a retornar o valor como queremos, vamos criar mais um if isolado, da seguinte forma:

Aqui, simplesmente estamos dizendo:

Se a string tiver tamanho igual a 1 E o primeiro caractere for uma letra

Faça verdade = 1;

Assim, quando o único caractere da string for uma letra, o valor retornado passa a ser .

Para finalizar, basta retornar nossa variável verdade para que a função possa passá-la quando for chamada no main.

Resposta