Faça um programa para ler uma tabela contendo os nomes dos alunos de uma turma de 5 alunos. O programa deve solicitar ao usuário os nomes do aluno, sempre perguntando se ele deseja inserir mais um nome na lista. Uma vez lidos todos os alunos, o usuário irá indicar um nome que ele deseja verificar se está presente na lista, onde o programa deve procurar pelo nome (ou parte deste nome) e se encontrar deve exibir na tela o nome completo e o índice do vetor onde está guardado este nome.
Passo 1
A questão pede um programa que use vetores, laços de repetição e busca de substring em strings para: ler até 5 nomes de alunos, perguntando sempre ao usuário se ele quer inserir mais um, e depois pesquisar um termo no vetor e exibir cada nome completo e índice onde o termo (ou parte dele) for encontrado.
Precisamos de um vetor de 5 strings, uma variável contadora do número de nomes lidos, um laço para ler nome por nome (até 5 ou enquanto o usuário desejar), e uma maneira de buscar substring em cada string do vetor.
Precisamos de um vetor de 5 strings, uma variável contadora do número de nomes lidos, um laço para ler nome por nome (até 5 ou enquanto o usuário desejar), e uma maneira de buscar substring em cada string do vetor.
Passo 2
Definimos um vetor de 5 strings (por exemplo, em C:
char nomes[5][100];
) e uma variável int qtd = 0;
para rastrear quantos nomes já foram inseridos.Passo 3
Usamos um laço
while(qtd < 5)
que a cada iteração pede nomes[qtd]
, incrementa qtd
e então pergunta “Deseja inserir mais um nome? (S/N)”. Se a resposta for diferente de ‘S’ ou ‘s’, interrompemos o laço.Passo 4
Após a leitura, pedimos ao usuário uma string de busca, por exemplo
busca[100]
.Passo 5
Percorremos o vetor
nomes
de índice i = 0
até i < qtd
. Para cada nomes[i]
, usamos strstr(nomes[i], busca)
para verificar se a substring existe. Se strstr
retornar não nulo, exibimos nomes[i]
e o índice i
. Se, ao final, nenhuma ocorrência for encontrada, informamos “Nome não encontrado.”Resposta
Segue um exemplo de implementação em C:
#include <stdio.h>
#include <string.h>
#include <string.h>
int main() {
char nomes[5][100];
int qtd = 0;
char resp;
char nomes[5][100];
int qtd = 0;
char resp;
// Leitura dos nomes
while (qtd < 5) {
printf("Digite o nome do aluno %d: ", qtd + 1);
fgets(nomes[qtd], sizeof(nomes[qtd]), stdin);
nomes[qtd][strcspn(nomes[qtd], "\n")] = '\0'; // remove \n
qtd++;
if (qtd == 5) break;
printf("Deseja inserir mais um nome? (S/N): ");
scanf(" %c", &resp);
getchar(); // consome o \n
if (resp != 'S' && resp != 's') break;
}
// Leitura do termo de busca
char busca[100];
printf("\nDigite o nome (ou parte) para buscar: ");
fgets(busca, sizeof(busca), stdin);
busca[strcspn(busca, "\n")] = '\0';
// Busca e exibição
int encontrou = 0;
for (int i = 0; i < qtd; i++) {
if (strstr(nomes[i], busca) != NULL) {
printf("Encontrado: %s (índice %d)\n", nomes[i], i);
encontrou = 1;
}
}
if (!encontrou) {
printf("Nome não encontrado.\n");
}
return 0;
}