Escreva um programa que recebe do usuário uma string S, um caractere C, e uma posição I e devolve o índice da primeira posição da string onde foi encontrado o caractere C. A procura deve começar a partir da posição I.

Passo 1

O problema pede um programa que receba uma string S, um caractere C e um índice inicial I, e devolva o primeiro índice em S onde C aparece, iniciando a busca em I. O conteúdo principal é a busca linear em strings.

Passo 2

Para resolver, vamos usar a ideia da busca linear: iterar sobre cada posição de S a partir de I e comparar o caractere atual com C. Se for igual, retornamos o índice; se percorrermos toda a string sem achar, retornamos -1.

Passo 3

Primeiro, validamos se I está no intervalo válido. Se I<0 ou I>= comprimento de S, não faz sentido buscar e podemos retornar -1 imediatamente.
Em seguida, montamos um loop que vai de j=I até j=lvert Srvert-1. A cada iteração, comparamos S[j] com C.
No momento em que S[j]==C, interrompemos a busca e retornamos j como primeiro índice encontrado.
Se o loop terminar sem encontrar C, retornamos -1 indicando que o caractere não aparece em S a partir de I.

Resposta

def find_from(S, C, I):
# Valida a posição inicial
n = len(S)
if I < 0 or I >= n:
return -1
# Busca linear a partir de I
for j in range(I, n):
    if S[j] == C:
        return j

# Se não encontrar, retorna -1
return -1

Leitura dos dados

t = input("Digite a string: ")
c = input("Digite o caractere: ")[0]
i = int(input("Digite a posição inicial: "))

Chamada da função e saída

encontrado = find_from(t, c, i)
print(encontrado)

Exercícios relacionados