Você está aqui: C ::: Dicas & Truques ::: Strings e Caracteres |
Como testar a existência de uma substring em uma string usando a função strstr() da linguagem CQuantidade de visualizações: 10051 vezes |
Nesta dica mostro como pesquisar uma substring dentro de uma string. Para isso usaremos a função strstr() do header string.h. Esta função aceita a string e a substring que queremos pesquisar e retorna NULL se a substring não for encontrada. Caso esta esteja contida na string, um ponteiro para o caractere inicial de sua ocorrência é retornado. Veja o código:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char frase[] = "Gosto muito de Java e Python"; // vamos pesquisar a substring "Java" na string char *res = strstr(frase, "Java"); // se for NULL a substring não foi encontrada if(res == NULL) printf("A substring nao foi encontrada"); else printf("A substring foi encontrada: %s", res); puts("\n\n"); system("PAUSE"); return 0; } Note que neste exemplo, a substring é localizada e o conteúdo de res é o restante da string a partir do primeiro caractere da substring pesquisada. |
![]() |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Struct (Estruturas, Registros) |
Exercício Resolvido de C - Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunosQuantidade de visualizações: 2830 vezes |
Pergunta/Tarefa: Programa de cálculo de médias de alunos. Escrever um programa C que cadastre o nome, a matrícula e duas notas de vários alunos. Em seguida imprima a matrícula, o nome e a média de cada um deles. Seu código deverá, obrigatoriamente, usar a estrutura abaixo para a representação de cada aluno: // estrutura Aluno typedef struct{ int matricula; char nome[100]; float nota1; float nota2; } Aluno; LEITURA DOS ALUNOS: Matrícula do Aluno 1: 123 Nome do Aluno 1: OSMAR J SILVA Nota 1 do Aluno 1: 8,5 Nota 2 do Aluno 1: 9,3 Matrícula do Aluno 2: 432 Nome do Aluno 2: FABIANA CASTRO Nota 1 do Aluno 2: 9 Nota 2 do Aluno 2: 8,2 DADOS DOS ALUNOS: DADOS DO ALUNO 1: Matrícula: 123 Nome: OSMAR J SILVA Nota 1: 8,50 Nota 2: 9,30 Média: 8,90 DADOS DO ALUNO 2: Matrícula: 432 Nome: FABIANA CASTRO Nota 1: 9,00 Nota 2: 8,20 Média: 8,60 Veja a resolução comentada deste exercício usando C: Código para alunos.c: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> // estrutura Aluno typedef struct{ int matricula; char nome[100]; float nota1; float nota2; } Aluno; // define a quantidade de alunos que serão lidos #define QUANT_ALUNOS 2 int main(int argc, char *argv[]) { int i; // controle do laço Aluno alunos[QUANT_ALUNOS]; // vetor de alunos setlocale(LC_ALL,""); // para acentos do português printf("LEITURA DOS ALUNOS:\n\n"); for(i = 0; i < QUANT_ALUNOS; i++){ // vamos ler a matrícula do aluno printf("Matrícula do Aluno %d: ", (i + 1)); scanf("%d", &alunos[i].matricula); fflush(stdin); // para o scanf não sair pulando o gets // agora o nome do aluno printf("Nome do Aluno %d: ", (i + 1)); gets(alunos[i].nome); // vamos ler a primeira nota printf("Nota 1 do Aluno %d: ", (i + 1)); scanf("%f", &alunos[i].nota1); // vamos ler a segunda nota printf("Nota 2 do Aluno %d: ", (i + 1)); scanf("%f", &alunos[i].nota2); } // agora vamos mostrar os alunos lidos, com suas notas // e suas médias aritméticas printf("\nDADOS DOS ALUNOS:\n"); for(i = 0; i < QUANT_ALUNOS; i++){ printf("\nDADOS DO ALUNO %d:\n ", (i + 1)); printf("Matrícula: %d\n", alunos[i].matricula); printf("Nome: %s\n", alunos[i].nome); printf("Nota 1: %.2f\n", alunos[i].nota1); printf("Nota 2: %0.2f\n", alunos[i].nota2); printf("Média: %.2f\n", (alunos[i].nota1 + alunos[i].nota2) / 2); } printf("\n\n"); system("pause"); return 0; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valoresQuantidade de visualizações: 14290 vezes |
Exercícios Resolvidos de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valores Pergunta/Tarefa: Considere o seguinte vetor de inteiros: // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; A soma dos valores do vetor é: 32 Veja abaixo a resolução completa para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // um vetor de inteiros contendo sete elementos int valores[] = {4, 5, 1, 8, 2, 2, 10}; // o primeiro passo é criar uma variável que vai receber a soma // dos valores dos elementos int soma = 0; int i; // agora vamos usar uma laço for para percorrer todos os elementos // do vetor, obter o valor do elemento atual e adicionar ao valor atual // da variável soma for(i = 0; i < 7; i++){ soma = soma + valores[i]; // poderia também ser escrito assim: // soma += valores[i]; } // vamos exibir a soma dos valores do vetor printf("A soma dos valores do vetor é: %d\n", soma); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em C usando uma função substring_count() personalizadaQuantidade de visualizações: 10220 vezes |
Em algumas situações precisamos obter a quantidade de vezes que uma substring ocorre dentro de uma string. Para isso podemos usar a função personalizada substring_count(). Esta função recebe a string e a substring que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que a substring foi encontrada. Veja o código:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> // função personalizada que permite contar as // ocorrências de uma substring em uma string int substring_count(const char *str, const char *substring){ int i, j, k, quant = 0; // vamos percorrer todos os caracteres da string for(i = 0; str[i]; i++){ for(j = i, k = 0; str[j] == substring[k]; j++, k++){ if(substring[k + 1] == 0) // fim da comparação quant++; } } return quant; } int main(int argc, char *argv[]){ char frase[] = "Gosto muito de Java, JavaScript e Python"; printf("Ocorrencias encontradas: %d", substring_count(frase, "Java")); puts("\n\n"); system("PAUSE"); return 0; } |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |