Pular para o conteúdo

Padrão 4: andar pela string

objetivo Texto é vetor de char, então vale o mesmo molde, com tam - 1.

em C é um de . Então o molde é o mesmo do vetor: olhe s[tam - 1] e chame com tam - 1.

O caso base é tam == 0, texto vazio.

Pra comparar um caractere, use aspas simples: s[tam - 1] == 'a'. Com aspas duplas vira texto e não compila.

Quando a chamada vem com strlen(s), lembre do <string.h>.

exemplo.cclique numa linha pra entender ela

Onde todo mundo escorrega

  • 'a' com aspas simples é caractere. "a" com aspas duplas é texto e não compila na comparação.
  • Toda comparação precisa do seu próprio c ==, não dá pra escrever c == 'a' || 'e'.

Desafio

Escreva ehBinaria, que devolve 1 se a string contém apenas os caracteres 0 e 1, e 0 caso contrário.

int ehBinaria(char s[], int tam)
o que a função tem que devolver
chamadasaída esperada
s = "101101"ehBinaria(s, 6)1
s = "1021"ehBinaria(s, 4)0
s = "0"ehBinaria(s, 1)1
a sua função
linha 1
int ehBinaria(char s[], int tam) {
    // caso base: string vazia conta como binaria

    // se a ultima letra nao for '0' nem '1', ja deu errado
}

Ctrl+Enter (Cmd+Enter no Mac) roda. Esc sai do editor.

aperte Rodar pra ver a saída aqui
Ver a pilha de chamadas passo a passo

Mostra o que o seu código faz em cada chamada. É uma simulação didática, não substitui o botão de testar.

Dicas

Tenta sozinho primeiro. Travou de verdade, abre a primeira.